detect-gui/widget/task_result_tools.py

115 lines
4.8 KiB
Python
Raw Normal View History

2025-02-14 14:22:23 +08:00
from PyQt5.QtGui import QTextCharFormat, QColor, QBrush, QPixmap
from PyQt5.QtWidgets import QFrame, QPushButton, QSizePolicy, QGridLayout, QPlainTextEdit
from rich.layout import Layout
from components.image_framework import MSG_LOCATION_RECORD, MSG_DETECTION_RECORD, get_msg_info
from core.context import AppContext
class TaskResultToolsFrame(QFrame):
def __init__(self, parent=None):
super(TaskResultToolsFrame, self).__init__(parent)
self.task_result = parent
layout = QGridLayout()
layout.setContentsMargins(10, 0, 10, 10)
self.log_text = QPlainTextEdit()
self.log_text.setObjectName("logText")
self.log_text.setReadOnly(True)
self.start_adjust_button = QPushButton()
self.start_adjust_button.setObjectName("startAdjustButton")
self.start_adjust_button.setText("开始校准")
self.start_adjust_button.setFixedHeight(42)
self.start_adjust_button.clicked.connect(self.start_adjust)
self.start_check_button = QPushButton()
self.start_check_button.setObjectName("startCheckButton")
self.start_check_button.setEnabled(False)
self.start_check_button.setText("开始检测")
self.start_check_button.setFixedHeight(42)
self.start_check_button.clicked.connect(self.start_check)
self.stop_check_button = QPushButton()
self.stop_check_button.setObjectName("stopCheckButton")
self.stop_check_button.setEnabled(False)
self.stop_check_button.setText("停止检测")
self.stop_check_button.setFixedHeight(42)
self.stop_check_button.clicked.connect(self.stop_check)
self.stop_task_button = QPushButton()
self.stop_task_button.setObjectName("stopTaskButton")
self.stop_task_button.setText("结束任务")
self.stop_task_button.setFixedHeight(42)
self.stop_task_button.clicked.connect(self.stop_task)
layout.setRowStretch(0,6)
layout.setRowStretch(1,1)
layout.setRowStretch(2,1)
layout.setRowStretch(3,1)
layout.setRowStretch(4,1)
layout.addWidget(self.log_text, 0, 0)
layout.addWidget(self.start_adjust_button, 1, 0)
layout.addWidget(self.start_check_button, 2, 0)
layout.addWidget(self.stop_check_button, 3, 0)
layout.addWidget(self.stop_task_button, 4, 0)
self.setLayout(layout)
def insert_text(self, text, font_color):
char_format = QTextCharFormat()
char_format.setForeground(QBrush(font_color))
self.log_text.mergeCurrentCharFormat(char_format)
self.log_text.appendPlainText(text)
# 开始校准
def start_adjust(self):
self.start_adjust_button.setEnabled(False)
self.start_check_button.setEnabled(False)
self.stop_check_button.setEnabled(False)
self.stop_task_button.setEnabled(False)
self.log_text.setPlainText("")
self.task_result.result_big_label.setPixmap(QPixmap(""))
self.task_result.result_big_label.setText("广角摄像头")
self.task_result.result_small_label.setPixmap(QPixmap(""))
self.task_result.result_small_label.setText("高清摄像头")
result = AppContext.get_edge_context().get_component('image-framework').start_adjust()
if result.code < 0:
self.set_default()
MessageBox("校准启动失败", "error", get_msg_info(msg.record.code).decode('utf-8'), AppContext.get_main_window()).show()
# 开始检测
def start_check(self):
self.start_adjust_button.setEnabled(False)
self.start_check_button.setEnabled(False)
self.stop_check_button.setEnabled(False)
self.stop_task_button.setEnabled(False)
result = AppContext.get_edge_context().get_component('image-framework').start_check()
if result.code < 0:
self.set_default()
MessageBox("检测启动失败", "error", get_msg_info(msg.record.code).decode('utf-8'), AppContext.get_main_window()).show()
# 停止检测
def stop_check(self):
self.start_adjust_button.setEnabled(False)
self.start_check_button.setEnabled(False)
self.stop_check_button.setEnabled(False)
self.stop_task_button.setEnabled(False)
result = AppContext.get_edge_context().get_component('image-framework').stop_check()
if result.code < 0:
MessageBox("检测停止失败", "error", get_msg_info(msg.record.code).decode('utf-8'), AppContext.get_main_window()).show()
self.set_default()
# 结束任务
def stop_task(self):
AppContext.get_edge_context().get_component('image-framework').stop_all()
self.task_result.close()
def set_default(self):
self.start_adjust_button.setEnabled(True)
self.start_check_button.setEnabled(False)
self.stop_check_button.setEnabled(False)
self.stop_task_button.setEnabled(True)