【问题标题】:Show progress in messagebox with Tkinter使用 Tkinter 在消息框中显示进度
【发布时间】:2013-06-29 15:28:43
【问题描述】:
因此,对于该程序,我有 2 个列表,一个以 100'000 个整数开头,一个以空开头但最终将填充第一个列表中的所有素数。
我想要的是一个消息框,它会随着第二个列表的长度不断更新,当第一个列表全部扫描/为空时,会显示一条消息,即第一个列表为空并且扫描完成。
我假设 update_idletasks 会涉及到,但我找不到相关的教程。
提前致谢
【问题讨论】:
标签:
python
list
tkinter
messagebox
progress
【解决方案1】:
使用python3:
from tkinter import *
from tkinter.ttk import *
def isPrime(num):
return all(num % i for i in range(2, num))
def startSearching():
primes = []
for i in range(100000):
if isPrime(i):
primes.append(i)
displayedText.set(len(primes))
label.update_idletasks()
displayedText.set('Scan is done.')
root = Tk()
displayedText = StringVar()
label = Label(root, textvariable=displayedText)
label.grid()
root.after(0, startSearching)
root.mainloop()