Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import signal
- import subprocess
- import sys
- import time
- from PyQt5 import QtCore, QtGui, QtWidgets
- flag = True # флаг для включения и выключения
- pid = None # pid процесса
- class Ui_MainWindow(object):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName('MainWindow')
- MainWindow.resize(235, 275)
- self.centralwidget = QtWidgets.QWidget(MainWindow)
- self.centralwidget.setObjectName('centralwidget')
- self.pushButton = QtWidgets.QPushButton(self.centralwidget)
- self.pushButton.setGeometry(QtCore.QRect(40, 50, 151, 131))
- self.pushButton.setObjectName('pushButton')
- MainWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 235, 21))
- self.menubar.setObjectName('menubar')
- MainWindow.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(MainWindow)
- self.statusbar.setObjectName('statusbar')
- MainWindow.setStatusBar(self.statusbar)
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- def buttonClicked(self):
- global flag
- global pid
- flag = not flag # по нажатию кнопки меняем флаг
- # если flag == False - вызываем процесс
- if not flag:
- # запускаем sketch2.py в отдельном процессе
- pro = subprocess.Popen(['python', 'sketch2.py'])
- pid = pro.pid
- print('Процесс запущен, pid: ', pid)
- # если flag == True - завершаем процесс
- else:
- os.kill(pid, signal.SIGTERM)
- print('Процесс завершен')
- def retranslateUi(self, MainWindow):
- _translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate('MainWindow', 'MainWindow'))
- self.pushButton.setText(_translate('MainWindow', 'button'))
- self.pushButton.clicked.connect(self.buttonClicked)
- if __name__ == '__main__':
- app = QtWidgets.QApplication(sys.argv)
- MainWindow = QtWidgets.QMainWindow()
- ui = Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement