Python 进程pyqt的进度条

Python 进程pyqt的进度条,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我正在编写一个简单的pyqt代码,其中有一个按钮调用shell命令。我想为shell命令的执行添加一个进度条。您知道如何链接进度条和流程(shell命令)吗 def数据就绪(自身): cursorOutput=self.output.textCursor() cursorOutput.movePosition(cursorOutput.End) #从子进程读取标准输出 processStdout=str(self.process.readAll()) #更新自我输出 cursorOutput.i

我正在编写一个简单的pyqt代码,其中有一个按钮调用shell命令。我想为shell命令的执行添加一个进度条。您知道如何链接进度条和流程(shell命令)吗

def数据就绪(自身): cursorOutput=self.output.textCursor() cursorOutput.movePosition(cursorOutput.End) #从子进程读取标准输出 processStdout=str(self.process.readAll()) #更新自我输出 cursorOutput.insertText(processStdout) self.output.ensurercursorvisible() def启动过程(自身): self.completed=0 当自我完成<100时: 自完成+=0.0001 self.progress.setValue(self.completed) script=f“cd/Users/alex/test/src;/Allmake\u all;” self.process.start(“bash”,[“-c”,脚本]) def initUI(self): #元素 self.progress=qtwidts.QProgressBar(self) self.startBtn=QtWidgets.QPushButton('Install all',self) self.startBtn.clicked.connect(self.startProcess) self.output=QtWidgets.QTextEdit(self)
这取决于您执行的脚本,例如,如果脚本扫描100个图像,则您的脚本应在每次扫描图像时发出通知,并在此时更新progressbar,但在您的情况下,无法进行该分析,因为您没有提供scriptHi的代码,谢谢您的帮助,通常我的代码会调用一个命令来安装openfoam之类的程序。该安装是否会在控制台上通知进度?
    def dataReady(self):
        cursorOutput = self.output.textCursor()
        cursorOutput.movePosition(cursorOutput.End)

        # Read stdout from child process
        processStdout = str(self.process.readAll())

        # Update self.output
        cursorOutput.insertText(processStdout)

        self.output.ensureCursorVisible()


    def startProcess(self):
        self.completed = 0

        while self.completed < 100:
            self.completed += 0.0001
            self.progress.setValue(self.completed)

        script = f"""cd /Users/alex/test/src; ./Allmake_all;"""
        self.process.start("bash", ["-c", script])


    def initUI(self):
        # Elements
        self.progress = QtWidgets.QProgressBar(self)
        self.startBtn = QtWidgets.QPushButton('Install all',self)
        self.startBtn.clicked.connect(self.startProcess)
        self.output = QtWidgets.QTextEdit(self)