【问题标题】:Python Tkinter Keybinds and Buttons blocking each other?Python Tkinter 键绑定和按钮相互阻塞?
【发布时间】:2017-09-30 12:30:54
【问题描述】:

我有一段类似这样的代码:

def create_main(self):

    self.bind("<Left>", lambda e:self.function())
    self.button1 = Button(self, ...)
    self.button1.grid(row=0, column =0)

    #furtherbuttons...

def function(self):
    print('test')

我在这段代码中遇到的问题是,如果我按下左键,该函数永远不会被调用。我用不同的按钮和鼠标尝试过,鼠标按钮总是可以正常工作,但键盘什么也没做。

我阅读了一些关于阻止绑定操作的按钮,但没有解决这个问题。

【问题讨论】:

  • 请添加更多内容并发布 MCVE stackoverflow.com/help/mcve
  • 按钮不会阻止绑定操作。见stackoverflow.com/q/16923167/7432
  • 我假设“self”是一个框架?您可能需要绑定到根目录。
  • 你好 Veit,欢迎来到这个网站。我们喜欢在这里保持问题的重点,所以我把你的问题删减了一点。如果您对它不满意,请随时重新编辑。
  • 感谢所有这些善意的回应!抱歉,我忘了说这是 Frame 的类,所以是的 self 是 Frame。将动作绑定到根可能是我的问题的解决方案。

标签: python user-interface button tkinter bind


【解决方案1】:

这是一个适用于 Win10 上的 3.6.1 的 MCVE。

import tkinter as tk
root = tk.Tk()

def handle(event=None):
    print(event)
    return 'break'

root.bind('<Left>', handle)
tk.Button(root, text='button', command=handle)
root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多