Tkinter Global Binding

rec*_*gle 4 python binding global tkinter widget

是否可以将所有小部件绑定到一个命令,只需一行?如果我可以键入一行而不是单独执行每个小部件,那将是很好的.

Bry*_*ley 8

您可以在根窗口上使用bind_all方法.这将适用于所有小部件(除非您从某些小部件中删除"全部"绑定标签).请注意,这些绑定最后会触发,因此如果您愿意,仍可以覆盖特定小部件上的应用程序范围绑定.

这是一个人为的例子:

import Tkinter as tk

class App:
    def __init__(self):
        root = tk.Tk()
        root.bind_all("<1>", self.woot)
        label1 = tk.Label(text="Label 1", name="label1")
        label2 = tk.Label(text="Label 2", name="label2")
        entry1 = tk.Entry(name="entry1")
        entry2 = tk.Entry(name="entry2")
        label1.pack()
        label2.pack()
        entry1.pack()
        entry2.pack()
        root.mainloop()

    def woot(self, event):
        print "woot!", event.widget

app=App()
Run Code Online (Sandbox Code Playgroud)

您可能还会对在Tkinter Text小部件中绑定自我事件的问题的答案感兴趣,因为它将被Text小部件绑定?我在那里谈谈关于bindtags的更多信息.