英文:
bind Win_L with 'd' in tkinter
问题
from tkinter import *
def quit_1(event):
print("你按下了 Win_L 键")
root.quit()
def quit_2(event):
print("你按下了 Win_L+D 键")
root.quit()
root = Tk()
root.bind('<Win_L>', quit_1) # 正常工作
root.bind('<Win_L-D>', quit_2) # 无法正常工作
root.mainloop()
英文:
from tkinter import *
def quit_1(event):
print("you pressed Win_L")
root.quit()
def quit_2(event):
print("you pressed Win_L+D")
root.quit()
root = Tk()
root.bind('<Win_L>', quit_1) #working
root.bind('<Win_L-D>', quit_2) #not working
root.mainloop()
How I bind Win_L + D event to a funcction
commenting line
root.bind('Win_L-D',quit_2) runs the program
答案1
得分: 2
为了将 Win_L + D 组合键绑定到 quit_2 函数,您需要修改绑定方法中的事件字符串。不要使用 '<Win_L-D>'
,而是使用 '<Win_L>d>'
:
root.bind('<Win_L>', quit_1)
root.bind('<Win_L>d>', quit_2)
这是因为 Win_L 是一个修改键,不能与其他键组合使用。当您按下 Win_L + D 时,Windows 操作系统会生成组合键的新键码。在 Tkinter 中,这个键码由 d(d 键)表示,因此您需要在事件字符串中使用它。
通过这个更改,按下 Win_L + D 组合键将在控制台打印 "you pressed Win_L+D" 并退出根窗口。
英文:
To bind the Win_L + D key combination to the quit_2 function, you need to modify the event string in the bind method. Instead of using '<Win_L-D>'
, you need to use '<Win_L>d'
:
root.bind('<Win_L>', quit_1)
root.bind('<Win_L>d', quit_2)
This is because Win_L is a modifier key and cannot be used in combination with other keys. When you press Win_L + D, the Windows operating system generates a new key code for the combination. In Tkinter, this code is represented by d (the d key), so you need to use it in the event string.
With this change, pressing the Win_L + D key combination will print "you pressed Win_L+D" to the console and quit the root window.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论