我正在用python3.12.0 (on windows)编写一个tkinter应用程序,我想绑定the other "Enter"(它在键盘的Num-Lock部分),当我按下它时,发送我的消息. 我正在使用一个文本窗口小工具,我需要主回车的中断行. 我已经用下面的代码解决了我的问题,它可以在我的系统上运行;但我正在寻找更好的解决方案,我不知道这个功能是否在其他系统上运行,甚至不知道它是否在不同的操作系统上运行.
def foo(event=None):
if not (event.keysym=="Return" and event.state in [
262144, # Caps Lock Off, Num Lock Off, Scroll Lock Off
262146, # Caps Lock On , Num Lock Off, Scroll Lock Off
262152, # Caps Lock Off, Num Lock On , Scroll Lock Off
262154, # Caps Lock On , Num Lock On , Scroll Lock Off
262176, # Caps Lock Off, Num Lock Off, Scroll Lock On
262178, # Caps Lock On , Num Lock Off, Scroll Lock On
262184, # Caps Lock Off, Num Lock On , Scroll Lock On
262186, # Caps Lock On , Num Lock On , Scroll Lock On
]):
return
# do the code
我的问题已经解决了.我只是想知道,有没有更好的方式来绑定另一位"Enter"?
编辑: 正如我一开始所说的:我只想使用第二个Enter按钮,我想我无法让人理解我的观点.
以下是我的代码:
import tkinter as tk
def foo(event=None):
print(event)
print(event.state)
# to bind only to other Enter, but not the main Enter:
if event!=None and (not (event.keysym=="Return" and event.state in [
262144, # Caps Lock Off, Num Lock Off, Scroll Lock Off
262146, # Caps Lock On , Num Lock Off, Scroll Lock Off
262152, # Caps Lock Off, Num Lock On , Scroll Lock Off
262154, # Caps Lock On , Num Lock On , Scroll Lock Off
262176, # Caps Lock Off, Num Lock Off, Scroll Lock On
262178, # Caps Lock On , Num Lock Off, Scroll Lock On
262184, # Caps Lock Off, Num Lock On , Scroll Lock On
262186, # Caps Lock On , Num Lock On , Scroll Lock On
])):
return
print("Yey!")
root = tk.Tk()
text = tk.Text(root, width=60, height=8)
text.bind('<Key>', foo)
text.pack()
tk.Button(root, text='Send', command=foo).pack()
root.mainloop()
请核对一下其他人的答案.