Я написал такую строку кода с помощью pyqt5, когда полученные данные превышают пороговое значение, появляется интерфейс тревоги, эти данные всегда принимаются, поэтому их необходимо оценивать постоянно.Для этого я поместил код, который получает данные и определение пороговых значений в поток.Однако теперь я не знаю, как реализовать соответствующий сигнал и функцию слота для отображения интерфейса оповещения, когда данные оценки превышают порог. Как я могу это сделать? Это мой код
class Control_system(QMainWindow, Ui_Control_system):
skipQueue = multiprocessing.Queue()
add_data_list = []
skip_button = pyqtSignal(object)
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.add_data_list = ""
self.popup_window_thread = PopupWindow()
self.p2 = multiprocessing.Process(target=Control_system.skip, args=(self.skipQueue,))
self.p2.start()
@staticmethod
def skip(self):
while True:
sql = "SELECT * FROM data WHERE 时间>=now()-interval 5 second"
result = Mysqldb.select_all(sql, [])
result_list = [x for x in result]
for i in range(len(result_list)):
term = list(result_list[i].values())
if eval(term[4]) > eval(result4['火焰值']):
Control_system.add_data_list.append(['新区101车间', '2号机', '火焰', '超过阈值'])
Control_system.skip_button.connect(self.jump_to_alert)
else:
pass
time.sleep(2)
@pyqtSlot()
def jump_to_alert(self):
try:
self.popup_window_thread.popup.disconnect()
except:
pass
self.popup_window_thread.popup.connect(self.goAlert)
self.popup_window_thread.start()
@pyqtSlot(str, str, str, str)
def goAlert(self, room, machine, project,description):
alert = Show_Text(room, machine, project,description)
alert.closeSignal.connect(self.add_line)
alert.exec_()
class PopupWindow(QThread):
popup = pyqtSignal(str,str,str,str)
def __init__(self, parent=None):
super(PopupWindow, self).__init__()
def run(self):
for term in Control_system.add_data_list:
self.popup.emit(term[0],term[1],term[2],term[3])
time.sleep(1)
Control_system.add_data_list = []
def stop(self):
self.quit()
self.wait()