在当前输入框中键入数字后,聚焦于下一个输入框

2024-10-02 18:20:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想看看是否有办法在一个输入框中键入一个介于1和4之间的数字,然后转到下一个输入框(将数字输入框中;下面的代码跳到下一个条目而不输入任何内容)

我正在创建一个程序,将项目级数据输入计算到不同的子量表中。我有这部分工作在不同的代码,但不想打标签在每个文本输入框之间,因为会有很多

基本代码:

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

谢谢你的帮助和指点


Tags: 代码masteraddbindcolumn数字rootgrid
1条回答
网友
1楼 · 发布于 2024-10-02 18:20:01

最简单的解决方案是在进入下一个字段之前输入事件keysym

在下面的示例中,请注意我如何在移动焦点之前添加对event.widget.insert的调用:

def nextentrybox(event):
    event.widget.insert("end", event.keysym)
    event.widget.tk_focusNext().focus()
    return('break')

相关问题 更多 >