tkinter 入口小部件如何在某些 digits/characters 之后自动 "tab"?

How can tkinter entry widget to "tab" automatically after certain digits/characters?

我正在写一个 python tkinter 试图有 2 个入口小部件。在第一个条目小部件中输入 5 位数字后,我希望第 6 位数字可以自动跳转到下一个条目小部件。我怎样才能重写它以使其成为现实?

import tkinter as tk

root=tk.Tk()
canvas1=tk.Canvas(root,width=400,height=400,bg='#FFFFFF')
canvas1.pack()

entry1=tk.Entry(root,width=8)
canvas1.create_window(10,100,window=entry1,anchor='nw')
entry1.focus_set()
  
entry1=tk.Entry(root,width=8)
canvas1.create_window(100,100,window=entry1,anchor='nw')

root.mainloop()

输入验证正是您要找的。试试下面的代码:

import tkinter as tk


def on_validate(P):
    if len(P) == 5:  # The 6th entry is taken up by the 2nd entry widget
        entry2.focus_set()
    return True

root = tk.Tk()
canvas1 = tk.Canvas(root, width=400, height=400, bg='#FFFFFF')
canvas1.pack()

entry1 = tk.Entry(root, width=8, validate="key")
entry1['validatecommand'] = (entry1.register(on_validate), '%P')
canvas1.create_window(10, 100, window=entry1, anchor='nw')
entry1.focus_set()

entry2 = tk.Entry(root, width=8)
canvas1.create_window(100, 100, window=entry2, anchor='nw')

root.mainloop()