Мой проект заключается в разработке окна GUI для получения температуры от датчика температуры и отображения его на виджете метки на GUI. Мне удалось отобразить значение, но оно не обновляется на этикетке, пожалуйста, помогите. я искал о том, как испустить сигнал в pyqt5 и подключить его к виджету метки
from PyQt5 import QtCore, QtGui, QtWidgets
from w1thermsensor import W1ThermSensor
from PyQt5.QtCore import Qt, QThread, pyqtSignal, pyqtSlot
sensor = (W1ThermSensor())
class Ui_Form(object):
def setupUi(self, parent=None):
Form.setObjectName("Form")
Form.resize(400, 300)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(60, 40, 141, 71))
self.label.setObjectName("label")
self.label.setNum(int(sensor.get_temperature()))
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
self.threadclass = ThreadClass()
self.threadclass.start()
self.signals(self)
def signals(self):
self.threadclass.connect(self.updateLabel)
self.threadclass.connect(pyqtSignal(val))
self.pyqtSignal(val).connect(self.updateLabel)
def updateLabel(self,val):
val = int(sensor.get_temperature())
self.label.setNum(val)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
class ThreadClass(QtCore.QThread):
change_value = pyqtSignal(int)
def setupUi(self, parent=None):
super(ThreadClass, self).__init__(parent)
def run(self):
while 1:
val = int(sensor.get_temperature())
self.change_value.emit(val)
print (val)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
ui.signals()
Form.show()
sys.exit(app.exec_())