mirror of
http://git.xinwangdao.com/cnnc-embedded-parts-detect/detect-gui.git
synced 2025-06-24 21:14:12 +08:00
115 lines
4.8 KiB
Python
115 lines
4.8 KiB
Python
![]() |
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)
|