在Python3和PyQt中使用QProcess.finished()
如何使用QProcess.finished()调用不同的Python3脚本 以下是我称之为的脚本:在Python3和PyQt中使用QProcess.finished(),python,python-3.x,qprocess,Python,Python 3.x,Qprocess,如何使用QProcess.finished()调用不同的Python3脚本 以下是我称之为的脚本: #!/usr/bin/python from PyQt4.QtGui import QApplication from childcontrolgui import childcontrolgui def main(): import sys app = QApplication(sys.argv) wnd = childcontrolgui() wnd.show
#!/usr/bin/python
from PyQt4.QtGui import QApplication
from childcontrolgui import childcontrolgui
def main():
import sys
app = QApplication(sys.argv)
wnd = childcontrolgui()
wnd.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
要调用脚本,我使用如图所示的代码
流程开始工作时,会显示main.py中的窗口,但似乎未触发finished。当我从main.py关闭窗口时,什么也没有发生。请改用普通的start()
不要忘了在控制脚本中启动QApplication
class Control(QObject):
def properties(self):
self.process=QProcess()
self.process.finished.connect(self.onFinished)
self.process.start('python3', ['../GUI/main.py'])
def onFinished(self, exitCode, exitStatus):
[...]
if __name__ == '__main__':
app = QApplication(sys.argv)
co = Control()
co.properties()
sys.exit(app.exec_())
class Control(QObject):
def properties(self):
self.process=QProcess()
self.process.finished.connect(self.onFinished)
self.process.start('python3', ['../GUI/main.py'])
def onFinished(self, exitCode, exitStatus):
[...]
if __name__ == '__main__':
app = QApplication(sys.argv)
co = Control()
co.properties()
sys.exit(app.exec_())