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

2024-10-03 17:25:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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做不到的事情

谢谢


Tags: texteventtkinterdefcolumnrootlabeltk
1条回答
网友
1楼 · 发布于 2024-10-03 17:25:51

您不应该有多个Tk窗口。Tkinter根本不是这样设计的。Tkinter被设计成只有一个根窗口,在程序的生命周期中有一个对mainloop()的调用。如果你对tkinter的工作原理有一个坚实的理解,你可以违反这些限制,但是很少有一个好的理由这么做

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

相关问题 更多 >