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


Python WidgetRedirector.close方法代码示例

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


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

示例1: __init__

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import close [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

示例2: __init__

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import close [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

示例3: WidgetRedirectorTest

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import close [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

示例4: test_close

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import close [as 别名]
 def test_close(self):
     redir = WidgetRedirector(self.text)
     redir.register('insert', Func)
     redir.close()
     self.assertEqual(redir._operations, {})
     self.assertFalse(hasattr(self.text, 'widget'))
开发者ID:Logotrop,项目名称:trida,代码行数:8,代码来源:test_widgetredir.py

示例5: test_init

# 需要导入模块: from idlelib.WidgetRedirector import WidgetRedirector [as 别名]
# 或者: from idlelib.WidgetRedirector.WidgetRedirector import close [as 别名]
 def test_init(self):
     redir = WidgetRedirector(self.text)
     self.assertEqual(redir.widget, self.text)
     self.assertEqual(redir.tk, self.text.tk)
     self.assertRaises(TclError, WidgetRedirector, self.text)
     redir.close()  # restore self.tk, self.text
开发者ID:Logotrop,项目名称:trida,代码行数:8,代码来源:test_widgetredir.py


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