Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在tkinter中的Entry小部件中等待输入_Python_Tkinter - Fatal编程技术网

Python 如何在tkinter中的Entry小部件中等待输入

Python 如何在tkinter中的Entry小部件中等待输入,python,tkinter,Python,Tkinter,我想在tkinter做一个测验,我有五个问题。但是,我想等待一个答案被输入到条目小部件。我知道我可能需要一个按钮,但我不知道该怎么做。 到目前为止,我的代码是: for i in range(5): randChoose = random.choice(choose) questionLabel = Label(top, text=full[randChoose]).grid(row=0, column=0) answerLabel = Label

我想在tkinter做一个测验,我有五个问题。但是,我想等待一个答案被输入到条目小部件。我知道我可能需要一个按钮,但我不知道该怎么做。 到目前为止,我的代码是:

for i in range(5):
        randChoose = random.choice(choose)
        questionLabel = Label(top, text=full[randChoose]).grid(row=0, column=0)
        answerLabel = Label(top, text="Answer:").grid(row=1, column=0)
        answerEntry = Entry(top, borderwidth=5).grid(row=1,column=1)

        if answerEntry.get() == aFull[randChoose]:
            correctLabel = Label(top, text="Correct!",fg="green").grid(row=2,column=0)
            score += 1
            scoreLabel = Label(top, text=f"Your Score is {score}",fg="green").grid(row=2,column=1)
        else:
            wrongLabel = Label(top, text="Incorrect!",fg="red").grid(row=2,column=0)
            scoreLabel = Label(top, text=f"Your Score is {score}",fg="red").grid(row=2,column=1)
        choose.remove(randChoose)
首先,添加一个按钮

按下按钮=StringVar 按下此可变按钮将告诉我们按钮是否按下 我们将button_pressed设置为StringVar,因此set可以在button的命令中更改此变量

button=Buttonapp,text=Enter,command=lambda:button_pressed.setbutton pressed 按下按钮时,将变量按钮设置为按下

button.gridrow=1,column=1 然后,等待按钮按下

按钮。等待\u可变按钮\u按下 此代码将等待,直到按下的varialbe按钮被更改为任何内容

最后,检查条目

如果answerEntry.get==aFull[randChoose]:等

最终代码应如下所示:

对于范围5中的i: randChoose=random.choicechoose questionLabel=Labelapp,text=full[randChoose]。gridrow=0,column=0 answerLabel=Labelapp,text=Answer:.gridrow=1,column=0 answerEntry=Entryapp,borderwidth=5。gridrow=1,column=1 按下按钮=StringVar button=Buttonapp,text=Enter,command=lambda:button_pressed.setbutton pressed button.gridrow=1,column=1 按钮。等待\u可变按钮\u按下 如果answerEntry.get==aFull[randChoose]: correctLabel=Labelapp,text=Correct!,fg=green.gridrow=2,column=0 分数+=1 scoreLabel=Labelapp,text=您的分数为{Score},fg=green.gridrow=2,column=1 其他: 错误标签=标签应用,文本=错误!,fg=红色。gridrow=2,column=0 scoreLabel=Labelapp,text=您的分数为{Score},fg=red.gridrow=2,column=1 选择 你可能想破坏这个按钮,所以在下一个问题上,它不会显示2个按钮

摧毁
按下按钮后,您可以通过root.update检查输入状态。首先,您必须了解。目前,您正在一次又一次地堆叠小部件,这非常感谢,但我在answerButton上收到一个错误。请稍候,按下variablebutton,表示未定义按下的按钮。有人知道为什么吗?我有个拼写错误,花了很长时间才找到。谢谢