Quantcast
Viewing all articles
Browse latest Browse all 14069

How to bind the other "Enter" on the keyboard in python tkinter?

I am writing a tkinter app in python 3.12.0 (on windows) and I want to bind the other "Enter" (Which is in Num-Lock part of keyboard) that when I press it, send my message.I am using a Text Widget and I need the main Enter for break line.I hove solved my problem with beneath code and it works on my system; But I'm looking for a better solution and I don't know if this function works on other systems or even if it works on a different OS.

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 tkdef 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()

Please check others' answers.


Viewing all articles
Browse latest Browse all 14069

Trending Articles