Я разработал графический интерфейс для своего приложения и после нажатия кнопки подключил собственную функцию, в которой я вызываю команду bash для одновременного запуска 2 скриптов Python. Оба скрипта являются приложениями Qt. У меня есть кнопка «Пуск» для запуска команды bash. Но как только я нажал кнопку, оба приложения запустились, но мой графический интерфейс завис. Кроме того, у меня есть кнопка «Стоп», чтобы остановить эти приложения, но графический интерфейс зависает, и я не могу ничего сделать с графическим интерфейсом. Что я делаю не так?
Я пробовал разные варианты запуска 2-х сценариев одновременно, но команда python3 script1.py & python3 script2.py &
отлично сработала. Есть ли другие пути? os.system()
или subprocess.call()
не сработали для меня. Есть ли эффективные способы сделать это?
Это мой основной код для моего интерфейса.
class MainApp(QtWidgets.QMainWindow, mainui.Ui_MainWindow):
def __init__(self, parent=None):
super(MainApp, self).__init__(parent)
self.setupUi(self)
self.exitapp()
self.startApp()
def multipleopen(self):
self.output = subprocess.check_output(['bash', '-c',
"python3 guiGO.py & python3 liveSpectogram.py &"])
def startApp(self):
self.start.clicked.connect(self.multipleopen)
def exitapp(self):
self.exit.clicked.connect(QtCore.QCoreApplication.instance().quit)
Я ожидаю, что оба приложения запустятся нажатием кнопки «Пуск» и остановятся нажатием кнопки «Стоп». Но после нажатия кнопки «Пуск» графический интерфейс зависает, и я не могу ничего сделать, кроме как закрыть запущенные приложения и закрыть окно графического интерфейса
GUI перестает отвечать на запросы
![](https://i.stack.imgur.com/L6EH0.png)
Я вынужден выйти из GUI
![](https://i.stack.imgur.com/SBhdp.png)
Я должен остановить скрипт вручную, используя кнопку остановки
![](https://i.stack.imgur.com/mJMTv.png)