Как привязать другой «Enter» на клавиатуре в python tkinter?Python

Программы на Python
Гость
Как привязать другой «Enter» на клавиатуре в python tkinter?

Сообщение Гость »


Я пишу приложение tkinter на Python 3.12.0 (в Windows) и хочу связать другой «Enter» (который находится в части Num-Lock клавиатуры), чтобы, когда я нажимаю ее, отправить мое сообщение.
Я использую текстовый виджет, и мне нужен основной Enter для разрыва строки.
Я решил свою проблему с помощью кода ниже, и он работает на моем система; Но я ищу лучшее решение и не знаю, работает ли эта функция в других системах или даже в другой ОС.

Код: Выделить всё

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
My problem is already solved. I just want to know is there a better way to bind the other "Enter"?

Edit:
As I told in the first place: I want to use only the second Enter button and I think I couldn't get my point across.
Here is my code:

Код: Выделить всё

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('', foo)
text.pack()
tk.Button(root, text='Send', command=foo).pack()
root.mainloop()
Please check others' answers.


Источник: https://stackoverflow.com/questions/781 ... on-tkinter

Вернуться в «Python»