• 2150阅读
  • 1回复

使用pyqt的QProgressDialog,代码如下 [复制链接]

上一主题 下一主题
离线laijunguang
 

只看楼主 倒序阅读 楼主  发表于: 2018-09-21
主要问题:我用python的pickle,load一份文件的时候,我想要有进度条,所以代码的实现如下,但是如果我多次执行这些代码,for循环中时间越来越慢,我使用
了time库,打印了print(t1-t0)发现时间要越来越旧,所以想请教一下各位大神是什么原因

self
.file_path = file_name[0]
file = open(file_name[0],'rb')
progress_dialog = QProgressDialog(self)
progress_dialog.setWindowModality(Qt.WindowModal)
progress_dialog.setCancelButton(None)
progress_dialog.setWindowTitle("init project")
progress_dialog.setLabelText("wait")
progress_dialog.setMinimum(0)
progress_dialog.setMaximum(10000)
progress_dialog.setMinimumDuration(0)
progress_dialog.show()
import time
t0 = time.time()
for i in range(0, 10000):
    progress_dialog.setValue(i)
    if i == 5000:
        info = pickle.load(file)
        self.onNewProject(isLoad=True, projInfo=info)
    QCoreApplication.processEvents()
t1 = time.time()
print(t1-t0)
progress_dialog.setValue(10000)
progress_dialog.close()
file.close()





离线laijunguang

只看该作者 1楼 发表于: 2018-09-21
文件的大小是没有变化的,我用while 1来跑这段代码的,就发现for循环里面的进度条里面setValue()越来越慢,第一次只要1秒多,到后面都可以到10多秒
快速回复
限100 字节
 
上一个 下一个