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

时间:2019-06-14 17:17:39

标签: python tkinter windows-10

我正在使用Tkinter GUI创建桌面应用程序,该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键没有反应?

PS。我正在使用Windows 10,Python 3.7.2

1 个答案:

答案 0 :(得分:1)

您正在运行的BIOS,OS或窗口管理器很可能在将事件发送到tkinter之前对其进行了拦截。一个经典的例子是Windows上的ctrl-alt-delete,它不能被普通程序捕获。

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