Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.35 KB | None | 0 0
  1. import os
  2. import signal
  3. import subprocess
  4. import sys
  5. import time
  6. from PyQt5 import QtCore, QtGui, QtWidgets
  7.  
  8. flag = True # флаг для включения и выключения
  9. pid = None # pid процесса
  10.  
  11. class Ui_MainWindow(object):
  12.     def setupUi(self, MainWindow):
  13.         MainWindow.setObjectName('MainWindow')
  14.         MainWindow.resize(235, 275)
  15.         self.centralwidget = QtWidgets.QWidget(MainWindow)
  16.         self.centralwidget.setObjectName('centralwidget')
  17.         self.pushButton = QtWidgets.QPushButton(self.centralwidget)
  18.         self.pushButton.setGeometry(QtCore.QRect(40, 50, 151, 131))
  19.         self.pushButton.setObjectName('pushButton')
  20.         MainWindow.setCentralWidget(self.centralwidget)
  21.         self.menubar = QtWidgets.QMenuBar(MainWindow)
  22.         self.menubar.setGeometry(QtCore.QRect(0, 0, 235, 21))
  23.         self.menubar.setObjectName('menubar')
  24.         MainWindow.setMenuBar(self.menubar)
  25.         self.statusbar = QtWidgets.QStatusBar(MainWindow)
  26.         self.statusbar.setObjectName('statusbar')
  27.         MainWindow.setStatusBar(self.statusbar)
  28.         self.retranslateUi(MainWindow)
  29.         QtCore.QMetaObject.connectSlotsByName(MainWindow)
  30.     def buttonClicked(self):
  31.         global flag
  32.         global pid
  33.  
  34.         flag = not flag # по нажатию кнопки меняем флаг
  35.  
  36.         # если flag == False - вызываем процесс
  37.         if not flag:
  38.             # запускаем sketch2.py в отдельном процессе
  39.             pro = subprocess.Popen(['python', 'sketch2.py'])
  40.             pid = pro.pid
  41.             print('Процесс запущен, pid: ', pid)
  42.         # если flag == True - завершаем процесс
  43.         else:      
  44.             os.kill(pid, signal.SIGTERM)
  45.             print('Процесс завершен')
  46.  
  47.     def retranslateUi(self, MainWindow):
  48.         _translate = QtCore.QCoreApplication.translate
  49.         MainWindow.setWindowTitle(_translate('MainWindow', 'MainWindow'))
  50.         self.pushButton.setText(_translate('MainWindow', 'button'))
  51.         self.pushButton.clicked.connect(self.buttonClicked)
  52.  
  53. if __name__ == '__main__':
  54.     app = QtWidgets.QApplication(sys.argv)
  55.     MainWindow = QtWidgets.QMainWindow()
  56.     ui = Ui_MainWindow()
  57.     ui.setupUi(MainWindow)
  58.     MainWindow.show()
  59.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement