我想在GUI中实现一个函数的QProgressbar。我原以为这个过程很简单,但看起来并非如此。
我想我可以这样实现这个栏:
1-按钮被点击2-进度条和功能同时启动3-功能和进度条同时结束
当我搜索时,我发现的是用for循环更新这个栏。我不想这样做,因为我的代码是一个简单的函数,必须只运行一次。
这样做可能吗?还是我误会了什么?我发现启动和停止信号必须用Threading来管理。在我去做进一步的搜索之前,我想在这里问一下。
谢谢。
我认为最好的做法是,使用主线程为QProgressbar
或QProgressDialog
和侧线程为您的功能。
当你的函数使用主线程时,UI不会更新,即使你使用for-loop
到setValue
。
我正在做的是,创建一个QThread
,像一个信号给出的进度:
class AThread(QThread):
progress = pyqtSignal(int)
def run(self):
for i in range(100):
self.progress.emit(i)
然后用信号
中的数字设置progressbar
的值