将 tkinter 进度条链接到函数
linking tkinter progress bar to function
所以我有一个数学程序,我让用户输入 10 个问题。完成十个问题后,它会显示您答对了多少等。
我想做的是 link 回答问题数量的进度条,所以如果用户完成了 5 个问题,进度就会过半,然后一旦完成 10 个问题,就重新开始。我目前在这里有这个定义来提交答案
def submit(self):
try:
user_answer = int(self.answer_strvar.get())
except:
return
if eval(self.equation) == user_answer:
print('Correct!! The Answer Was {}'.format(user_answer))
self.correct_counter += 1
else:
print('Wrong!! Your Answer was: {} = {}, The Correct answer is {}'.format(self.equation, user_answer, eval(self.equation)))
self.submit_counter += 1
if self.submit_counter < NUM_QUESTIONS:
self.update_equation()
else:
self.show_result()
self.submit_counter = 0
self.correct_counter = 0
其中提交计数器是用户提交的答案数量。这是我想要 link 的变量,该数字是完成的百分比,10 是最大值。
我的主界面也有这样的进度条
pb = ttk.Progressbar(self, orient="horizontal", length=600, mode="determinate")
pb.pack()
使用控制变量设置值。
class TestProgress():
def __init__(self):
self.root = tk.Tk()
self.root.title('ttk.Progressbar')
self.val=tk.IntVar()
self.val.set(0)
self.pbar = ttk.Progressbar(self.root, length=300,
maximum=10, variable=self.val)
self.pbar.pack(padx=5, pady=5)
tk.Label(self.root, textvariable=self.val,
bg="lightblue").pack()
## wait 2 seconds & update
self.root.after(2000, self.advance)
self.root.mainloop()
def advance(self):
self.val.set(8)
TP=TestProgress()
所以我有一个数学程序,我让用户输入 10 个问题。完成十个问题后,它会显示您答对了多少等。
我想做的是 link 回答问题数量的进度条,所以如果用户完成了 5 个问题,进度就会过半,然后一旦完成 10 个问题,就重新开始。我目前在这里有这个定义来提交答案
def submit(self):
try:
user_answer = int(self.answer_strvar.get())
except:
return
if eval(self.equation) == user_answer:
print('Correct!! The Answer Was {}'.format(user_answer))
self.correct_counter += 1
else:
print('Wrong!! Your Answer was: {} = {}, The Correct answer is {}'.format(self.equation, user_answer, eval(self.equation)))
self.submit_counter += 1
if self.submit_counter < NUM_QUESTIONS:
self.update_equation()
else:
self.show_result()
self.submit_counter = 0
self.correct_counter = 0
其中提交计数器是用户提交的答案数量。这是我想要 link 的变量,该数字是完成的百分比,10 是最大值。
我的主界面也有这样的进度条
pb = ttk.Progressbar(self, orient="horizontal", length=600, mode="determinate")
pb.pack()
使用控制变量设置值。
class TestProgress():
def __init__(self):
self.root = tk.Tk()
self.root.title('ttk.Progressbar')
self.val=tk.IntVar()
self.val.set(0)
self.pbar = ttk.Progressbar(self.root, length=300,
maximum=10, variable=self.val)
self.pbar.pack(padx=5, pady=5)
tk.Label(self.root, textvariable=self.val,
bg="lightblue").pack()
## wait 2 seconds & update
self.root.after(2000, self.advance)
self.root.mainloop()
def advance(self):
self.val.set(8)
TP=TestProgress()