我正在尝试查看是否有一种方法可以在输入框中输入1到4之间的数字,然后转到下一个输入框(将数字输入到该框中;下面的代码将跳至下一个输入不输入任何内容)
我正在创建一个程序,该程序将把项目级别的数据输入计入不同的子量表。我的那部分工作在不同的代码中,但是我希望不必在每个文本输入框之间都按Tab键,因为会有很多输入框。
基本代码:
from tkinter import *
master = Tk()
root_menu = Menu(master)
master.config(menu = root_menu)
def nextentrybox(event):
event.widget.tk_focusNext().focus()
return('break')
Label(master, text='Q1',font=("Arial",8)).grid(row=0,column=0,sticky=E)
Q1=Entry(master, textvariable=StringVar)
Q1.grid(row=0,column=1)
Q1.bind('1',nextentrybox)
Q1.bind('2',nextentrybox)
Q1.bind('3',nextentrybox)
Q1.bind('4',nextentrybox)
Label(master, text='Q2',font=("Arial",8)).grid(row=1,column=0,sticky=E)
Q2=Entry(master, textvariable=StringVar)
Q2.grid(row=1,column=1)
Q2.bind('1',nextentrybox)
Q2.bind('2',nextentrybox)
Q2.bind('3',nextentrybox)
Q2.bind('4',nextentrybox)
### etc for rest of questions
### Scale sums, t-score lookups, and report generator to go here
file_menu = Menu(root_menu)
root_menu.add_cascade(label = "File", menu = file_menu)
file_menu.add_separator()
file_menu.add_command(label = "Quit", command = master.destroy)
mainloop()
感谢您的帮助或指示!
答案 0 :(得分:0)
最简单的解决方案是在进入下一个字段之前输入事件keyym。
在下面的示例中,请注意在移动焦点之前如何向event.widget.insert
添加呼叫:
def nextentrybox(event):
event.widget.insert("end", event.keysym)
event.widget.tk_focusNext().focus()
return('break')