Я сейчас использую PyQt5 и создал свой первый GUI. Теперь я хотел бы программу, которая делает следующее. Когда нажата кнопка «Пуск», выполните «функцию» n раз, пока не будет нажата кнопка «Стоп» (представьте секундомер), если я нажму кнопку «Пуск» снова, функция «снова» будет выполнена и т. Д.
То, что я до сих пор пробовал, это следующее, что не может работать, так как мы не можем изменить переменную извне l oop (mockup-script)
class Ui(QtWidgets.QDialog):
def __init__(self):
super(Ui, self).__init__()
uic.loadUi('interfaceScan.ui', self)
self.startScan = self.findChild(QtWidgets.QPushButton, 'startScan')
self.startScan.clicked.connect(self.startPressed)
self.pauseScan = self.findChild(QtWidgets.QPushButton, 'pauseScan')
self.pauseScan.clicked.connect(self.pausePressed)
self.show()
def startPressed(self):
global pauseScan
pauseScan = False
dosomething()
def pausePressed(self):
global pauseScan
pausScan = True
def dosomething():
while pauseScan == False: #not needed, but the measurement should be executed periodically until 'pause' is pressed
print('Running') #in the reals program the measurement will be executed here
time.sleep(4) #between each measurement the program needs to wait a cirtain amount of time ~1h
app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec_()
Любые идеи о том, как я может решить эту проблему? Теперь я относительно уверен, что он не работает при использовании l oop, поэтому я открыт для предложений о том, как его изменить!
Целью этого скрипта будет управление настройкой измерения это должно работать, скажем, 1000 циклов, но я хотел бы иметь возможность разбить его между ними, чтобы изменить параметры.