我正在尝试通过pyqt5平台上的百分比增加实时实时更新进度条。
我尝试过Qthread拥有实时进度栏。当Qthread中的函数完成时,它将在Qprogressbar上显示100%。
(https://i.ibb.co/bP5NmNd/running.png)
上面的链接是一张图片,显示了我现在所拥有的,在处理该函数时未显示任何百分比。
我想在Qprogressbar上进行实时更新,就像实际增加百分比指示线程已处理多远。 (类似于我们解压缩文件时,进度条会因文件大小而变快或变慢,有时它们的行为会如此快,而它们的速度会变快1%到50%,并且会在99%的时间上卡住一段时间,等等。)想要假的时间运行进度栏。
非常感谢
class dialog(QtWidgets.QWidget):
def __init__(self, parent=None):
super(dialog, self).__init__(parent)
self.progress = QtWidgets.QProgressBar(self)
self.progress.setRange(0, 1)
self.progress.setTextVisible(False)
self.btn = QtWidgets.QPushButton('Click to Train and Test', self)
self.btn.clicked.connect(self.data_process_started)
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.btn)
layout.addWidget(self.progress)
self.layout.setLayout(layout)
self.Task = Task_Thread()
self.Task.taskFinished.connect(self.onFinished)
def data_process_started(self):
self.progress.setRange(0,0)
self.Task.start()
def onFinished(self):
self.progress.setRange(0,1)
self.progress.setValue(1)
class Task_Thread(QThread):
taskFinished = pyqtSignal()
def run(self):
self.function() # I put my running fuction in here
self.taskFinished.emit()