为什么 Tkinter 不调用绑定到根窗口的函数?



我正在使用Tkinter GUI创建一个桌面应用程序,该应用程序使用Control+Alt + F1热键。但不幸的是,当我按下这些键时,Tkinter 不会调用该函数。

我已经尝试过root.bind("<Control-Alt-Key>", function),它有效。我什至尝试使用root.bind("<Control-Shift-F1>", function) - 它也有效。

try:
    # for Python 3
    from tkinter import *
except:
    # for Python 2
    from Tkinter import *
root = Tk()  # create the root window
# create bindings for root window
root.bind("<Control-Alt-F1>", lambda event: print("Ctrl+Alt+F1 pressed!"))
root.bind("<Control-Shift-F1>", lambda event: print("Ctrl+Shift+F1 pressed!"))
root.mainloop()  # start the mainloop

为什么 Tkinter 对 Control+Alt+F1 按键没有反应?

附言。我正在使用Windows 10,Python 3.7.2

最有可能的是,您正在运行的 bios、OS 或窗口管理器在将事件发送到 tkinter 之前正在拦截该事件。一个典型的例子是窗口上的ctrl-alt-delete,普通程序无法捕获。

如果是这种情况,您在 tkinter 中无法解决此问题。

最新更新