From cb62a8f333d967c5826980bdb7e748fff1835fb0 Mon Sep 17 00:00:00 2001 From: Martin Killenberg <martin.killenberg@desy.de> Date: Fri, 3 Nov 2023 21:42:42 +0100 Subject: [PATCH] fix: introduce process to decouple GUI --- Python_script/climate-lab-gui.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Python_script/climate-lab-gui.py b/Python_script/climate-lab-gui.py index 2ec5fc1..849d0fe 100755 --- a/Python_script/climate-lab-gui.py +++ b/Python_script/climate-lab-gui.py @@ -82,6 +82,20 @@ class TestStandMainWindow(QMainWindow): self.stopButton.setEnabled(True) self.qt_app.processEvents(); + p = mp.Process(target=self.do_measurement_impl) + p.start() + while p.is_alive(): + time.sleep(0.1) + self.qt_app.processEvents(); + p.join() + + self.runSettingsLayout.setEnabled(True) + self.startButton.setEnabled(True) + self.stopButton.setEnabled(False) + + + #the part that is started in a separate process + def do_measurement_impl(self): os.chdir(self.start_dir) with open('test_stand_parameter.json', 'r') as f: config_data = json.load(f) @@ -96,7 +110,6 @@ class TestStandMainWindow(QMainWindow): output_basename = self.baseName.text() if not self.check_and_change_dir(config_data['data_folder'] + '/' + output_basename): - self.setEnabled(True) return meas = None @@ -156,10 +169,6 @@ class TestStandMainWindow(QMainWindow): if meas is not None: meas.chamber.close() meas.ext_sensors.close() - - self.runSettingsLayout.setEnabled(True) - self.startButton.setEnabled(True) - self.stopButton.setEnabled(False) if __name__ == '__main__': -- GitLab