import sys import time import random from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget from PyQt5.QtCore import QThread, pyqtSignal class SensorThread(QThread): sensor_data_signal = pyqtSignal(float) def __init__(self): super().__init__() def run(self): while True: time.sleep(0.1) # Here, replace this with actual sensor data sensor_data = random.uniform(0, 100) # Simulating sensor data with random values self.sensor_data_signal.emit(sensor_data) class SensorWidget(QWidget): def __init__(self): super().__init__() self.sensor_value_label = QLabel('Waiting for sensor data...', self) self.layout = QVBoxLayout(self) self.layout.addWidget(self.sensor_value_label) self.sensor_thread = SensorThread() self.sensor_thread.sensor_data_signal.connect(self.update_sensor_value) self.sensor_thread.start() def update_sensor_value(self, sensor_value): self.sensor_value_label.setText(f'Sensor value: {sensor_value:.2f}') def main(): app = QApplication(sys.argv) sensor_widget = SensorWidget() sensor_widget.show() sys.exit(app.exec_()) if __name__ == '__main__': main()