Похоже на этот вопрос , но для pyqt.У меня есть приложение, которое имеет два потока, один из которых обрабатывает некоторые данные (отнимает много времени), а второй поток представляет результаты и запрашивает подтверждение результатов.Я хочу показать количество объектов, обработанных в индикаторе выполнения.Тем не менее, я также хочу показать количество объектов, проверенных пользователем.Обработанное число всегда будет равно или больше количества проверенных объектов (поскольку вы не можете проверить, что не было проверено).По сути, это что-то вроде полосы загрузки видео на YouTube или чего-то еще, показывая серую часть, которая «загружена», и красную часть, которая «просматривается».Это то, что может быть поддержано в pyqt?Документация для QProgressBar , похоже, не намекает на какую-либо поддержку.Использование PyQt5 и Python 3.6.
Это должно выглядеть примерно так: ![multi progress bar](https://i.stack.imgur.com/0mE53.png)
Вот минимальный жизнеспособный код, который имеет ДВА отдельных индикатора выполнения, один для числаобработанных объектов и других для проверенного числа, но я хочу, чтобы они перекрывались ...
import sys
from PyQt5.QtWidgets import (QApplication, QDialog,
QProgressBar, QPushButton)
class Actions(QDialog):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Progress Bar')
self.objectsToProcess = 100
self.objectsProcessed = 0
self.objectsVerified = 0
self.processProgress = QProgressBar(self)
self.processProgress.setGeometry(5, 5, 300, 25)
self.processProgress.setMaximum(self.objectsToProcess)
self.verifyProgress = QProgressBar(self)
self.verifyProgress.setGeometry(5, 35, 300, 25)
self.verifyProgress.setMaximum(self.objectsToProcess)
self.processButton = QPushButton('Process', self)
self.processButton.move(5, 75)
self.verifyButton = QPushButton('Verify', self)
self.verifyButton.move(90, 75)
self.show()
self.processButton.clicked.connect(self.process)
self.verifyButton.clicked.connect(self.verify)
def process(self):
if self.objectsProcessed + 1 < self.objectsToProcess:
self.objectsProcessed += 1
self.processProgress.setValue(self.objectsProcessed)
def verify(self):
if self.objectsVerified < self.objectsProcessed:
self.objectsVerified += 1
self.verifyProgress.setValue(self.objectsVerified)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Actions()
sys.exit(app.exec_())
Результат сверху кода:
![enter image description here](https://i.stack.imgur.com/9ezcF.png)