【发布时间】:2019-04-13 01:47:35
【问题描述】:
它是一个应用程序,它提出一个数学问题,用户在文本框中输入整数形式的答案,一个按钮submitbtn 验证它的正确或错误。
我将键盘键f 绑定到在按下按钮submitbtn 时运行的功能,它工作正常,但键f 在用户提交之前被添加到文本框中,然后将其作为错误答案提供。
文本框
text_Input = StringVar
txtbox = Entry(font=('arial',20, BOLD), textvariable=text_Input)
txtbox.grid(columnspan = 2, row = 3, pady = 20)
txtbox.focus_set()
提交按钮
submitbtn = Button(text="Submit", padx=10, pady=10, command=lambda:submit(txtbox.get(), y))
提交函数
def submit(z, y):
global correct_answer, wrong_answer, submitbtn
y=str(y)
if z==y:
correct_answer+=1
lbl2.configure(text=correct_answer)
else:
wrong_answer+=1
lbl4.configure(text=wrong_answer)
submitbtn.config(state="disabled")
绑定
game.bind('f', lambda event: submit(txtbox.get(), y))
#"game" is the name of Tk()
#submit is the function linked to submitbtn
#This works well if I bind it to <Return> (Enter Key)
实际输出:
5+8
用户输入:13
按“f”提交答案
已处理答案:13f
有没有办法实时处理文本框输入以确保输入的每个字符都是整数?如果用户输入除 0-9 以外的任何内容,我希望它在文本框中不显示任何内容。
另外,我在按下一次
submitbtn后禁用它,但反复按下 f 会继续增加correct_answer变量。有没有办法将键绑定到submitbtn,而submit又会调用函数submit,而不是直接将键f链接到submit函数?
【问题讨论】:
-
文本框是指
Entry小部件还是Text小部件? -
@HenryYik 条目小部件。我在问题中添加了文本框代码。
标签: python python-3.x tkinter textbox