我想为我的简单数学游戏添加一个计时器。目前一切都运行良好,当用户按下按钮时会得到问题,并对答案给予反馈。我想为用户添加一个计时器,以便查看回答乘法问题所需的时间。这是我的数学游戏原型的最后部分。我希望计时器在用户点击"nytt tal"(瑞典语中的新数字)时开始计时,在用户点击"svar"(瑞典语中的答案)时停止计时。以下是我的代码。
从Tkinter导入* import tkMessageBox import random import time import sys
# 向用户提问的定义 def fraga1(): global num3 num3 = random.randint(1, 10) global num4 num4 = random.randint(1, 10) global svar1 svar1 = num3 * num4 label1.config(text='What is ' + str(num3) + '*' + str(num4) + '?') entry1.focus_set()
# 基于答案的反馈定义 def svar1(): mainAnswer = entry1.get() if len(mainAnswer) == 0: tkMessageBox.showwarning(message='请输入数字!') return if int(mainAnswer) != svar1: tkMessageBox.showwarning(message='很遗憾,正确答案是: ' + str(svar1)) else: tkMessageBox.showinfo(message='正确!! :)')
# 退出按钮定义 def quit(): global root root.destroy()
# 计时器定义,这部分不起作用 def start(): global count_flag fraga1() count_flag = True count = 0.0 while True: if count_flag == False: break label['text'] = str(count) time.sleep(0.1) root.update() count += 0.1
# 窗口代码 root = Tk() root.title("乘法计时器") root.geometry('800x500')
count_flag = True # 欢迎信息标签 label2 = Label(root, text="你好!\n 我们来解决一些数学问题!") label2.config(font=('times', 18, 'bold'), fg='black', bg='white') label2.grid(row=0, column=0)
# 游戏玩法说明标签 label3 = Label(root, text="游戏玩法说明\n 点击“新问题”开始游戏") label3.config(font=('times', 12, 'bold'), fg='black', bg='white') label3.grid(row=2, column=2)
# 其他标签 label1 = Label(root) label1.grid(row=2, column=0)
# 开始按钮的输入小部件 entry1 = Entry(root) entry1.grid(row=3, column=0)
# 重启后会出现一个新问题 entry1.bind('', func=lambda e:checkAnswer())
# 按钮
fragaBtn = Button(root, text='新问题', command=fraga1) fragaBtn.grid(row=4, column=0)
svarButton = Button(root, text='答案', command=svar1) svarButton.grid(row=4, column=1)
quit_bttn = Button(root, text = "退出", command=quit) quit_bttn.grid(row=5, column=0)
root.mainloop()