使用Tkinter在消息框中显示进度

时间:2013-06-29 15:28:44

标签: python list tkinter messagebox progress

所以,对于程序我有2个列表,一个以100'000整数开头,一个从空开始,但最终将填充第一个列表中的所有素数。

我想要的是一个不断更新第二个列表长度的消息框,当第一个列表全部扫描/为空时,会显示第一个列表为空并且扫描完成的消息。

我假设会涉及到update_idletasks,但是我很难找到一些教程。

提前致谢

1 个答案:

答案 0 :(得分:2)

使用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()