无法将热键绑定到具有多个tkinter窗口的脚本

时间:2018-03-28 21:58:12

标签: python tkinter

from tkinter 
root = Tk()
second_root = Tk()

label_placeholder = Label(root, text='placeholder').grid(row=1, column=0)
second_label_placeholder = Label(second_root, text='placeholder').grid(row=1, column=0)


def saylol(event):
    print('lol')

def sayrofl(event):
    print('rofl')

root.bind_all('<Return>', saylol)
root.mainloop()

second_root.bind_all('<Control-Key-s>', sayrofl)
second_root.mainloop()

上面只是我想要完成的简化虚拟版本。我有一个函数创建了一个新的tkinter实例,我希望将一些特定的热键绑定到特定的函数。

现在,第一个绑定完全正常,问题是我似乎无法将热键绑定到辅助根窗口。

所以我想知道是否有办法绕过这个或者只是tkinter无法做到的事情?

感谢。

1 个答案:

答案 0 :(得分:0)

您不应该有多个Tk窗口。 Tkinter根本没有设计成以这种方式工作。 Tkinter设计为只有一个根窗口,并且在程序的生命周期内调用mainloop()。如果你对tkinter如何运作有充分的理解,你可以违反这些限制,但很少有理由这样做。

如果您需要的不仅仅是根窗口,请创建Toplevel

的实例