我正在继承Tkinter Text
小部件以提供一些自定义。
class CustomText(Text):
def __init__(self, *args, **kwargs):
Text.__init__(self, *args, **kwargs)
self.bind("<Control-v>", lambda event: self.paste())
def paste(self):
self.see('insert')
return "break"
我想覆盖<Control-v>
(粘贴)事件处理程序,并使用我自己的实现扩展基本操作。
继承并创建我自己的<Control-v>
事件回调非常简单,但我没有设法执行基本回调。
我试过
def paste(self): # -1-
super().event_generate('<Control-v')
self.see('insert')
return "break"
def paste(self): # -2-
super.event_generate('<Control-v')
self.see('insert')
return "break"
def paste(self): # -3-
self.see('insert')
在-1-我试图使用super()
来调用基类方法 - 不起作用
在-2-我尝试使用super
来调用基类方法 - 不起作用
在-3-我试图让tkinter运行基类,不起作用 - 基于bindtags
,我的代码将首先运行,然后Text
方法将运行(因此不给我的意图)
如何调用基类方法(覆盖并扩展<Control-v>
行为)?
答案 0 :(得分:1)
我不知道有什么方法可以直接做你要求的,但你可以通过after()
伪造它:
def paste(self):
self.after(1, lambda: self.see('insert'))