Home > Enterprise >  Is there a function to switch "Tab" and "Enter" button in tkinter?
Is there a function to switch "Tab" and "Enter" button in tkinter?

Time:12-02

I'm creating a Gui with Tkinter with a lot of Entry widgets. However, I don't like the fact of clicking on Tab button to go from one entry to another. I would like it to be the Enter key that does this. Is there a function to make it happen ??

CodePudding user response:

Have a read of this answer binding enter to a widget for the difference between <Return> and <Enter>

From that, you can build something like

import tkinter as tk
top = tk.Tk()
frm = tk.Frame(top)
frm.pack()

# List of entries
seq = [None]
next = []
entmax = 5
for ii in range(entmax):
    ent = tk.Entry(frm)
    ent.pack(side=tk.LEFT, padx=5, pady=5)
    seq.append(ent)
    next.append(ent)

# Now set the entries to move to the next field
for ix in range(1, entmax, 1):
    seq[ix].bind('<Return>', lambda e: next[ix].focus_set())

top.mainloop()

CodePudding user response:

You can bind the <Return> key event on the Entry widget. Then in the bind callback, get the next widget in the focus order by .tk_focusNext() and move focus to this widget:

import tkinter as tk

root = tk.Tk()

for i in range(10):
    e = tk.Entry(root)
    e.grid(row=0, column=i)
    e.bind('<Return>', lambda e: e.widget.tk_focusNext().focus_set())

root.mainloop()
  • Related