当前位置: 首页>>代码示例>>Python>>正文


Python WidgetRedirector.register方法代码示例

本文整理汇总了Python中idlelib.WidgetRedirector.WidgetRedirector.register方法的典型用法代码示例。如果您正苦于以下问题:Python WidgetRedirector.register方法的具体用法?Python WidgetRedirector.register怎么用?Python WidgetRedirector.register使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在idlelib.WidgetRedirector.WidgetRedirector的用法示例。


在下文中一共展示了WidgetRedirector.register方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyText(Text):
    def __init__(self, *args, **kwargs):
        Text.__init__(self, *args, **kwargs)
        self.redirector = WidgetRedirector(self)
        self.insert = \
            self.redirector.register("insert", lambda *args, **kw: "break")
        self.delete = \
            self.redirector.register("delete", lambda *args, **kw: "break")
开发者ID:jaredmixpanel,项目名称:mpexport_py,代码行数:10,代码来源:MPExport.py

示例2: ReadOnlyEntry

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyEntry(Entry):

    def __init__(self, *args, **kwargs):
        Entry.__init__(self, *args, **kwargs)
        self.redirector = WidgetRedirector(self)
        self.insert = self.redirector.register(
            "insert", lambda *args, **kw: "break")
        self.delete = self.redirector.register(
            "delete", lambda *args, **kw: "break")
开发者ID:pblocz,项目名称:programa-pedidos-san-cecilio,代码行数:11,代码来源:hospital_gui_common.py

示例3: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyText(tkinter.Text):
    def __init__(self, *args, **kwargs):
        from idlelib.WidgetRedirector import WidgetRedirector
        tkinter.Text.__init__(self, *args, **kwargs)
        self.redirector = WidgetRedirector(self)
        self.insert = \
            self.redirector.register("insert", lambda *args, **kw: "break")
        self.delete = \
            self.redirector.register("delete", lambda *args, **kw: "break")
开发者ID:gneposis,项目名称:gntools,代码行数:11,代码来源:status.py

示例4: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyText(Tkinter.Text):
    """Sets up a read-only chat box that can be added to with the
    Text.insert method, but cannot be modified by the user because
    all the input is rerouted"""
    def __init__(self, *args, **kwargs):
        Tkinter.Text.__init__(self, *args, **kwargs)
        self.redirector = WidgetRedirector(self)
        self.insert = self.redirector.register(
                                  "insert", lambda *args, **kw: "break")
        self.delete = self.redirector.register(
                                  "delete", lambda *args, **kw: "break")
开发者ID:Timidger,项目名称:Mao,代码行数:13,代码来源:Chat.py

示例5: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyText(tk.Text):
    def __init__(self, *args, **kwargs):
        kwargs['relief'] = tk.FLAT
        kwargs['insertwidth'] = 0
        kwargs['highlightthickness'] = 0
        tk.Text.__init__(self, *args, **kwargs)
        self.redirector = WidgetRedirector(self)
        self.insert = \
            self.redirector.register("insert", lambda *args, **kw: "break")
        self.delete = \
            self.redirector.register("delete", lambda *args, **kw: "break")
开发者ID:boscoh,项目名称:proteomicstools,代码行数:13,代码来源:tkform.py

示例6: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyText(Text):

    def __init__(self, master=None, cnf={}, **kw):
        super().__init__(master, cnf, **kw)
        self.redirector = WidgetRedirector(self)
        self.insert = self.redirector.register("insert", lambda *args, **kw: "break")
        self.delete = self.redirector.register("delete", lambda *args, **kw: "break")
开发者ID:Greygal,项目名称:EvePlanner,代码行数:9,代码来源:read_only_text.py

示例7: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyText(ScrolledText):
    def __init__(self, *args, **kwargs):
        ScrolledText.__init__(self, *args, **kwargs)
        self.redirector = WidgetRedirector(self)
        self.insert = self.redirector.register("insert", lambda *args, **kw: "break")
        self.delete = self.redirector.register("delete", lambda *args, **kw: "break")
        self.config(wrap=tk.WORD)
开发者ID:orez-,项目名称:IrcClient,代码行数:9,代码来源:irc_gui.py

示例8: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
 class ReadOnlyText(Text):
     """
     Prevent keys from being shown in the text area.
     We want to control what is actualxpyl presented to the user.
     """
     def __init__(self, *args, **kwargs):
         """
         Trashes every attempt to modify the text area coming from
         user input.
         """
         Text.__init__(self, *args, **kwargs)
         self.redirector = WidgetRedirector(self)
         self.insert = \
             self.redirector.register("insert",
                                      lambda *args, **kw: "break")
         self.delete = \
             self.redirector.register("delete",
                                      lambda *args, **kw: "break")
开发者ID:01org,项目名称:pem,代码行数:20,代码来源:inputrecorder.py

示例9: __init__

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class Percolator:

    def __init__(self, text):
        self.text = text
        self.redir = WidgetRedirector(text)
        self.top = self.bottom = Delegator(text)
        self.bottom.insert = self.redir.register('insert', self.insert)
        self.bottom.delete = self.redir.register('delete', self.delete)
        self.filters = []

    def close(self):
        while self.top is not self.bottom:
            self.removefilter(self.top)

        self.top = None
        self.bottom.setdelegate(None)
        self.bottom = None
        self.redir.close()
        self.redir = None
        self.text = None
        return

    def insert(self, index, chars, tags = None):
        self.top.insert(index, chars, tags)

    def delete(self, index1, index2 = None):
        self.top.delete(index1, index2)

    def insertfilter(self, filter):
        raise isinstance(filter, Delegator) or AssertionError
        raise filter.delegate is None or AssertionError
        filter.setdelegate(self.top)
        self.top = filter
        return

    def removefilter(self, filter):
        if not isinstance(filter, Delegator):
            raise AssertionError
            raise filter.delegate is not None or AssertionError
            f = self.top
            self.top = f is filter and filter.delegate
            filter.setdelegate(None)
        else:
            while not (f.delegate is not filter and f is not self.bottom):
                raise AssertionError
                f.resetcache()
                f = f.delegate

            f.setdelegate(filter.delegate)
            filter.setdelegate(None)
        return
开发者ID:webiumsk,项目名称:WOT-0.9.14-CT,代码行数:53,代码来源:percolator.py

示例10: __init__

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class Percolator:

    def __init__(self, text):
        # XXX would be nice to inherit from Delegator
        self.text = text
        self.redir = WidgetRedirector(text)
        self.top = self.bottom = Delegator(text)
        self.bottom.insert = self.redir.register("insert", self.insert)
        self.bottom.delete = self.redir.register("delete", self.delete)
        self.filters = []

    def close(self):
        while self.top is not self.bottom:
            self.removefilter(self.top)
        self.top = None
        self.bottom.setdelegate(None)
        self.bottom = None
        self.redir.close()
        self.redir = None
        self.text = None

    def insert(self, index, chars, tags=None):
        # Could go away if inheriting from Delegator
        self.top.insert(index, chars, tags)

    def delete(self, index1, index2=None):
        # Could go away if inheriting from Delegator
        self.top.delete(index1, index2)

    def insertfilter(self, filter):
        # Perhaps rename to pushfilter()?
        assert isinstance(filter, Delegator)
        assert filter.delegate is None
        filter.setdelegate(self.top)
        self.top = filter

    def removefilter(self, filter):
        # XXX Perhaps should only support popfilter()?
        assert isinstance(filter, Delegator)
        assert filter.delegate is not None
        f = self.top
        if f is filter:
            self.top = filter.delegate
            filter.setdelegate(None)
        else:
            while f.delegate is not filter:
                assert f is not self.bottom
                f.resetcache()
                f = f.delegate
            f.setdelegate(filter.delegate)
            filter.setdelegate(None)
开发者ID:Connor124,项目名称:Gran-Theft-Crop-Toe,代码行数:53,代码来源:Percolator.py

示例11: ReadOnlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ReadOnlyText(Text):
    """A Text widget that redirects the insert and delete
    handlers so that they are no-ops. This effectively makes
    the widget readonly with respect to keyboard input handlers.

    Adapted from http://tkinter.unpythonic.net/wiki/ReadOnlyText, which
    is itself adapting a solution described here: http://wiki.tcl.tk/1152
    """
    def __init__(self, *args, **kwargs):
        Text.__init__(self, *args, **kwargs)

        self.redirector = WidgetRedirector(self)
        self.insert = self.redirector.register("insert", tk_break)
        self.delete = self.redirector.register("delete", tk_break)
开发者ID:pybee,项目名称:tkreadonly,代码行数:16,代码来源:tkreadonly.py

示例12: ThreadSafeConsole

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ThreadSafeConsole(ScrolledText):
    """A thread-safe, read-only, scrolling text widget."""

    def __init__(self, *args, **kwargs):
        tk.Text.__init__(self, *args, **kwargs)
        self.tag_config("ok", foreground="forest green")
        self.tag_config("error", foreground="red")
        self.redir = WidgetRedirector(self)
        self.insert = self.redir.register("insert", lambda *args, **kw: "break")
        self.delete = self.redir.register("delete", lambda *args, **kw: "break")
        self.queue = queue.Queue()
        self.update()

    def write(self, line):  # pragma: no cover
        self.queue.put(line)

    def clear(self):  # pragma: no cover
        self.queue.put(None)

    def update(self):  # pragma: no cover
        try:
            while True:
                line = self.queue.get_nowait()
                if line is None:
                    self.delete(1.0, tk.END)
                else:

                    parts = line.split("...")
                    self.insert(tk.END, str(parts[0]))
                    if len(parts) > 1:
                        suffix = str(parts[1])
                        self.insert(tk.END, "...")
                        if suffix.endswith("OK"):
                            suffix = suffix.replace("OK", "")
                            self.insert(tk.END, suffix)
                            self.insert(tk.END, "OK", ("ok"))
                        elif suffix.startswith("ERROR"):
                            suffix = suffix.replace("ERROR", "")
                            self.insert(tk.END, "ERROR", ("error"))
                            self.insert(tk.END, suffix)
                        else:
                            self.insert(tk.END, suffix)
                        self.insert(tk.END, "\n")

                self.see(tk.END)
                self.update_idletasks()
        except queue.Empty:
            pass
        self.after(100, self.update)
开发者ID:alexandermendes,项目名称:imgverifier,代码行数:51,代码来源:console.py

示例13: ScrolledTextReadOnly

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class ScrolledTextReadOnly(ScrolledText):
    def __init__(self, *args, **kwargs):
        ScrolledText.__init__(self, *args, **kwargs)
        _rc_menu_install(self)
        # overwrite default class binding so we don't need to return "break"
        self.bind_class("Text", "<Control-a>", self.event_select_all)  
        self.bind("<Button-3><ButtonRelease-3>", self.show_menu)

        # Make the widget ready only
        self.redirector = WidgetRedirector(self)
        self.insert = self.redirector.register("insert", lambda *args, **kw: "break")
        self.delete = self.redirector.register("delete", lambda *args, **kw: "break")

    def event_select_all(self, *args):
        self.focus_force()        
        self.tag_add("sel","1.0","end")

    def show_menu(self, e):
        self.tk.call("tk_popup", self.menu, e.x_root, e.y_root)
开发者ID:IARyan,项目名称:w5c_unlocker,代码行数:21,代码来源:gui_utils.py

示例14: PRReadonlyText

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class PRReadonlyText(PRText):
    def __init__(self, *args, **kwargs):
        PRText.__init__(self, *args, **kwargs)
        self._insert = self.insert
        self._delete = self.delete
        self._redirector = WidgetRedirector(self)
        self.readonly = True

    def _setup_menu(self, master, editable=False):
        super(PRReadonlyText, self)._setup_menu(master, editable=False)
        
    def clear(self):
        self.readonly = False
        self._delete(1.0, tk.END)
        self.readonly = True

    @property
    def readonly(self):
        return self._readonly

    @readonly.setter
    def readonly(self, value):
        _break_func = lambda *args, **kw: 'break'
        if value:
            self.insert = self._redirector.register('insert', _break_func)
            self.delete = self._redirector.register('delete', _break_func)
        else:
            self.insert = self._redirector.unregister('insert')
            self.delete = self._redirector.unregister('delete')
        self._readonly = value

    @property
    def text(self):
        return self.get(0.0, tk.END)

    @text.setter
    def text(self, value):
        self.readonly = False
        self._delete(0.0, tk.END)
        self._insert(0.0, value)
        self.readonly = True
开发者ID:BasicWolf,项目名称:pyregs,代码行数:43,代码来源:widgets.py

示例15: WidgetRedirectorTest

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import register [as 别名]
class WidgetRedirectorTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        requires('gui')
        cls.root = Tk()
        cls.text = Text(cls.root)

    @classmethod
    def tearDownClass(cls):
        del cls.text
        cls.root.update_idletasks()
        cls.root.destroy()
        del cls.root

    def setUp(self):
        self.redir = WidgetRedirector(self.text)
        self.func = Func()
        self.orig_insert = self.redir.register('insert', self.func)
        self.text.insert('insert', 'asdf')  # leaves self.text empty

    def tearDown(self):
        self.text.delete('1.0', 'end')
        self.redir.close()

    def test_repr(self):  # partly for 100% coverage
        self.assertIn('Redirector', repr(self.redir))
        self.assertIn('Original', repr(self.orig_insert))

    def test_register(self):
        self.assertEqual(self.text.get('1.0', 'end'), '\n')
        self.assertEqual(self.func.args, ('insert', 'asdf'))
        self.assertIn('insert', self.redir._operations)
        self.assertIn('insert', self.text.__dict__)
        self.assertEqual(self.text.insert, self.func)

    def test_original_command(self):
        self.assertEqual(self.orig_insert.operation, 'insert')
        self.assertEqual(self.orig_insert.tk_call, self.text.tk.call)
        self.orig_insert('insert', 'asdf')
        self.assertEqual(self.text.get('1.0', 'end'), 'asdf\n')

    def test_unregister(self):
        self.assertIsNone(self.redir.unregister('invalid operation name'))
        self.assertEqual(self.redir.unregister('insert'), self.func)
        self.assertNotIn('insert', self.redir._operations)
        self.assertNotIn('insert', self.text.__dict__)

    def test_unregister_no_attribute(self):
        del self.text.insert
        self.assertEqual(self.redir.unregister('insert'), self.func)

    def test_dispatch_intercept(self):
        self.func.__init__(True)
        self.assertTrue(self.redir.dispatch('insert', False))
        self.assertFalse(self.func.args[0])

    def test_dispatch_bypass(self):
        self.orig_insert('insert', 'asdf')
        # tk.call returns '' where Python would return None
        self.assertEqual(self.redir.dispatch('delete', '1.0', 'end'), '')
        self.assertEqual(self.text.get('1.0', 'end'), '\n')

    def test_dispatch_error(self):
        self.func.__init__(TclError())
        self.assertEqual(self.redir.dispatch('insert', False), '')
        self.assertEqual(self.redir.dispatch('invalid'), '')

    def test_command_dispatch(self):
        # Test that .__init__ causes redirection of tk calls
        # through redir.dispatch
        self.root.call(self.text._w, 'insert', 'hello')
        self.assertEqual(self.func.args, ('hello',))
        self.assertEqual(self.text.get('1.0', 'end'), '\n')
        # Ensure that called through redir .dispatch and not through
        # self.text.insert by having mock raise TclError.
        self.func.__init__(TclError())
        self.assertEqual(self.root.call(self.text._w, 'insert', 'boo'), '')
开发者ID:Logotrop,项目名称:trida,代码行数:80,代码来源:test_widgetredir.py


注:本文中的idlelib.WidgetRedirector.WidgetRedirector.register方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。