【发布时间】:2015-02-06 21:53:43
【问题描述】:
我正在开发一个提取 zip 文件的程序,我已经完成了该部分。但我想添加一个进度条来显示提取过程的进度。我已经有一个进度条,但它没有显示提取的进度。我希望它从点 0 开始并到达点 100,这将是提取完成时的终点。但相反,它只是不断重复从点 0 到点 100,直到提取完成。我该怎么做?
代码:
from threading import Thread
from Tkinter import *
import zipfile
import ttk
class Application(Frame):
def __init__(self, parent):
Frame.__init__(self,parent)
self.pack()
self.create_widgets()
Thread(target=self.startExtr).start()
def create_widgets(self):
self.pBar = ttk.Progressbar(orient=HORIZONTAL, length=200, mode="determinate")
self.pBar.pack(side=BOTTOM)
def startExtr(self):
self.pBar.start()
with zipfile.ZipFile('Kerbal Space Program.zip', "r") as z:
z.extractall("")
self.pBar.stop()
root = Tk()
root.title("Test")
app = Application(root)
root.mainloop()
【问题讨论】:
-
进度条需要一种方法来了解解压缩的距离。在上面的代码中,你没有办法让它知道。
-
@IronManMark20 你能举个例子说明我应该如何去做吗?
标签: python tkinter zip progress-bar ttk