我正在编写一个PyQt GUI应用程序,我想为我的一个函数显示一个繁忙的进度条,这需要时间来完成。这是代码:
wb.Document.InvokeScript("findString", new string[] { toWord });
目前,我尝试使用QTimer,但它不起作用。 CPU绑定功能是self.progress = QtGui.QProgressDialog("Canceling...", None, 0, 0, self)
self.progress.setWindowTitle("Canceling refresh")
self.progress.show()
timer = QtCore.QTimer()
timer.singleShot(0, self.loadNotifications)
while timer.isActive():
app.processEvents()
。
我想在一个线程中启动它,当它正在运行时,更新QProgressBar。
我当然可以在函数loadNotifications周围创建一个QThread类,但是对于我想做的事情来说有点过分:在函数运行时只显示一个平滑的progressBar。
你有什么想法吗?
答案 0 :(得分:0)
我没有PyQT的经验,但在tkinter中,我通常通过让我的慢函数定期调用传递给它的一些update_progbar
函数来实现这一点。然后,此update_progbar
函数更新与慢函数相同的线程中的进度条(因此暂时保留)。
初步:
def update_progbar(prog):
print(prog)
def slow_function(prog_func):
for i in range(100000):
if i%1000 == 0:
prog_func(i / 100000.0)
do_something()