From 010e38f4d1bd7af0308b92f0ac21d4ad97b37825 Mon Sep 17 00:00:00 2001 From: esarrey <eliott.sarrey@gmail.com> Date: Fri, 9 Jun 2023 14:39:12 +0200 Subject: [PATCH] Fix --- src/ui/livetab.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/ui/livetab.py b/src/ui/livetab.py index 3d9b755..0dd48ca 100644 --- a/src/ui/livetab.py +++ b/src/ui/livetab.py @@ -28,11 +28,24 @@ class LiveTab(TabWidget, QtWidgets.QWidget): self.sensor_timer.timeout.connect(self.update_sensor_value) self.sensor_timer.start(100) # Refresh every 0.1 seconds + self.thread_pool = QtCore.QThreadPool() + + self.tabBarClicked.connect(self.tab_activated) + self.tabBarDoubleClicked.connect(self.tab_activated) + + def tab_activated(self, index): + if index == self.currentIndex(): + self.sensor_timer.start(100) # Start updating sensor value + else: + self.sensor_timer.stop() # Stop updating sensor value + def update_sensor_value(self): - # Create a worker thread for reading the sensor value + # Create a worker object for reading the sensor value worker = SensorWorker(self.hall_sensor) worker.sensor_value_updated.connect(self.update_sensor_label) - QtCore.QThreadPool.globalInstance().start(worker) + + # Move the worker object to the thread pool and start the thread + self.thread_pool.start(worker) def update_sensor_label(self, sensor_value): self.sensor_value_label.setText(str(sensor_value) + "mT") @@ -42,13 +55,14 @@ class LiveTab(TabWidget, QtWidgets.QWidget): self.hall_sensor.zeroing() self.sensor_timer.start(100) -class SensorWorker(QtCore.QRunnable): +class SensorWorker(QtCore.QObject): sensor_value_updated = QtCore.pyqtSignal(float) def __init__(self, hall_sensor): super().__init__() self.hall_sensor = hall_sensor + @QtCore.pyqtSlot() def run(self): sensor_value = self.hall_sensor.read_mT() - self.sensor_value_updated.emit(sensor_value) \ No newline at end of file + self.sensor_value_updated.emit(sensor_value) -- GitLab