使用tkinter/ttk (8.5+)
,在自定义对话框中,我想将Return
键绑定到OK
按钮。
所以我使用标准指令:
self.window.bind("<Return>", self.on_ok)
问题是,在这个自定义对话框中还有一个(多行)Text
小部件。一旦Return
键绑定到OK
按钮,就不能再在Enter
窗口小部件中键入Text
而不终止对话框!键入Return
现在等同于按OK
。
我在Firefox中检查过,当Text
控件有焦点时,按Return
不会触发OK按钮。它只是输入换行符。
如果OK
按钮具有焦点,则按Return
会激活该按钮。
有没有办法在tkinter中重现这种行为?含义,仅当未选择OK
窗口小部件时才会触发Text
按钮的绑定?
答案 0 :(得分:2)
你有两个选择。
self.on_ok
功能选择不同的绑定,例如'<Shift-Return>'
。self.window
是您的根tkinter
对象:
def on_ok(event):
if self.window.focus_get() == text:
print('the text widget has focus')
else:
print('some other widget has focus')