使QProgressDialog更新,且值不变化

0 投票
1 回答
1565 浏览
提问于 2025-04-16 01:14

我在用PyQt4做一个进度条,叫QProgressDialog,来监控进度。基本上,我有一个像这样的循环:

while progressThread.isRunning():
    self.progressDialog.setRange(0, self.progressTotal_)
    self.progressDialog.setValue(self.progress_)
del self.progressDialog

这个进度线程会更新两个变量,self.progessTotal_和self.progress_。

当progress_的值不断变化时,这个方法效果很好。但有些任务的进度报告就没那么详细,导致进度条一直显示灰色窗口,直到有变化。

我能在这个循环里加点什么,让进度条即使没有变化也能更新吗?

谢谢!
nathan

1 个回答

0

你应该把线程中的更新信号连接到进度对话框上。现在你的循环让用户界面(UI)线程被阻塞了。你可以在循环中加一个 QApplication::processEvents 的调用,但最重要的是不要让用户界面线程被阻塞,这样就没问题了。

撰写回答