我有以下代码:
import tkinter
from random import randint
score = 0
window = tkinter.Tk()
def Validate():
global score
answer_string = answer.get()
try:
answer_value = int(answer_string)
except ValueError as e:
print(e)
return
if answer_value == number1 * number2:
score -= 1
print('True')
q.pack_forget()
else:
score += 1
print('False')
i=0
while i==0:
number1 = randint(1,12)
number2 = randint(1,12)
q = tkinter.Label(window, text="What is " + str(number1) + "x" + str(number2) + " ?")
q.pack()
answer = tkinter.Entry(window)
submit = tkinter.Button(window, text = "Submit", command=Validate)
answer.pack()
submit.pack()
window.mainloop()
我想做的是每次提问时替换Q中的文本。我想要做的是删除验证函数中的Q,然后每次代码循环时重新创建它,但这不起作用。
任何帮助都将不胜感激。
发布于 2017-05-14 07:50:39
基本上,您不需要每次迭代创建标签,有几种方法可以在tkinter中更新标签。
例如:
1.
window = tkinter.Tk()
text = tkinter.StringVar()
text.set('old')
lb = tkinter.Label(window, textvariable=text)
...
text.set('new')
2.
lb = tkinter.Label(window, text="What is " + str(number1) + "x" + str(number2) + " ?")
lb['text'] = 'new'
3.
lb = tkinter.Label(window, text="What is " + str(number1) + "x" + str(number2) + " ?")
lb.config(text='new')
https://stackoverflow.com/questions/43965856
复制相似问题