超时进行报警例子
import sys
from PySide6.QtCore import QTimer
from PySide6.QtWidgets import QApplication, QMessageBox, QWidget, QVBoxLayout, QPushButton
HKname = 0
result = 0 class AlarmSystem(QWidget):def __init__(self):super().__init__()self.init_ui()self.setup_timers()def init_ui(self):self.setWindowTitle("超时报警系统")self.setGeometry(100, 100, 300, 200)layout = QVBoxLayout(self)self.trigger_hkname_button = QPushButton("触发相机采集完成")self.trigger_hkname_button.clicked.connect(self.simulate_hkname)layout.addWidget(self.trigger_hkname_button)self.trigger_result_button = QPushButton("触发算法结果完成")self.trigger_result_button.clicked.connect(self.simulate_result)layout.addWidget(self.trigger_result_button)def setup_timers(self):self.timer_check = QTimer(self) self.timer_check.timeout.connect(self.check_timeout)self.timeout_timer = QTimer(self) self.timeout_timer.setSingleShot(True) self.timeout_timer.timeout.connect(self.trigger_alarm)self.timer_check.start(1000)def check_timeout(self):global HKname, resultif HKname == 1:print("图片采集完成,开始计时...")HKname = 0 self.timeout_timer.start(5000) if result == 1:print("算法结果完成,停止计时器...")result = 0 self.timeout_timer.stop()def trigger_alarm(self):print("超时未接收到算法结果,发出报警!")QMessageBox.warning(self, "报警", "算法结果未在规定时间内完成!")def simulate_hkname(self):"""模拟相机采集完成"""global HKnameHKname = 1print("手动触发:相机采集完成信号 (HKname = 1)")def simulate_result(self):"""模拟算法结果完成"""global resultresult = 1print("手动触发:算法结果完成信号 (result = 1)")if __name__ == "__main__":app = QApplication(sys.argv)alarm_system = AlarmSystem()alarm_system.show()sys.exit(app.exec())