文件分离函数类,增加提示信息

This commit is contained in:
冯佳
2025-09-05 15:40:00 +08:00
parent 79f733126b
commit 0557ba7f1c
6 changed files with 182 additions and 72 deletions

View File

@ -1,7 +1,7 @@
# This Python file uses the following encoding: utf-8
import sys
import time
from PyQt5.QtWidgets import QWidget, QLineEdit
from PyQt5.QtWidgets import QFileDialog
from PyQt5.QtWidgets import QApplication, QMainWindow, QStackedWidget, QWidget, QLayout, QLabel, QLineEdit, QPushButton, QMessageBox, QShortcut, QDialog,QTextEdit
from PyQt5 import uic
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QObject, QRunnable, QMutex, QTimer, QEvent
@ -19,7 +19,9 @@ import uart_group_config as group_config
from mqtt_device import class_comm_mqtt_thread, class_comm_mqtt_interface
from print_color import *
from Shared_CODE.get_tip_prop import *
from Shared_CODE.DialogFaceView import *
from QT5_Project.Shared_CODE.DialogFaceVerify import VerifyDialog
from QT5_Project.Shared_CODE.DialogFaceEnrollItgSingle import EnrollItgSingleDialog
from QT5_Project.Shared_CODE.DialogFaceUserManage import UserManageDialog, save_user, load_users, save_users_list
# 设置 UI 目录的路径
ui_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'UI'))
@ -441,8 +443,6 @@ class QFaceCameraViewPage(PageTemplate):
#信号绑定
# self.btn_refresh.clicked.connect(self.refresh_ports)
# self.btn_conn.clicked.connect(self.toggle_conn)
self.btn_video.clicked.connect(self.toggle_video)
self.btn_video_mode.clicked.connect(self.toggle_video_mode)
self.chk_face_box.stateChanged.connect(self.toggle_face_box)
@ -468,7 +468,6 @@ class QFaceCameraViewPage(PageTemplate):
# 串口管理
def auto_connect_serial(self):
"""根据 config.py 选择默认串口,但不立即打开"""
ports = [p.device for p in serial.tools.list_ports.comports()]
if not ports:
self.log("[WARN] 未检测到任何串口设备")
@ -517,7 +516,6 @@ class QFaceCameraViewPage(PageTemplate):
except:
pass
self.ser = None
self.btn_conn.setText("连接")
self.log("[INFO] 串口已关闭")
def toggle_conn(self):
@ -528,7 +526,8 @@ class QFaceCameraViewPage(PageTemplate):
def send(self, frame: bytes):
if not self.ser or not getattr(self.ser, "is_open", False):
QMessageBox.warning(self, "提示", "请先连接串口")
inform_box : DialogInform = DialogInform()
inform_box.information("提示", "请先连接串口")
return
try:
self.ser.write(frame)
@ -563,6 +562,8 @@ class QFaceCameraViewPage(PageTemplate):
self.video_label.setPixmap(QPixmap())
self.btn_video.setText("打开视频")
self.log("[INFO] 视频已关闭")
inform_box : DialogInform = DialogInform()
inform_box.information("提示", "视频已关闭")
return
if self.video_label.width()<50 or self.video_label.height()<50:
@ -574,26 +575,36 @@ class QFaceCameraViewPage(PageTemplate):
self.video_worker.start()
self.btn_video.setText("关闭视频")
self.log("[INFO] 正在打开视频")
inform_box : DialogInform = DialogInform()
inform_box.information("提示", "正在打开视频")
def toggle_video_mode(self):
if self.current_video_mode==0:
self.send_uvc(0)
self.current_video_mode=1
self.log("[INFO] 已切换到红外视频模式")
inform_box : DialogInform = DialogInform()
inform_box.information("提示", "已切换到红外视频模式")
else:
self.send_uvc(1)
self.current_video_mode=0
self.log("[INFO] 已切换到彩色视频模式")
inform_box : DialogInform = DialogInform()
inform_box.information("提示", "已切换到彩色视频模式")
def toggle_face_box(self, state):
if state==Qt.Checked:
self.face_box_enabled=True
self.send_face_box(1)
self.log("[INFO] 人脸框已开启")
inform_box : DialogInform = DialogInform()
inform_box.information("提示", "人脸框已开启")
else:
self.face_box_enabled=False
self.send_face_box(0)
self.log("[INFO] 人脸框已关闭")
inform_box : DialogInform = DialogInform()
inform_box.information("提示", "人脸框已关闭")
# ---------------- 发送指令 ----------------
def send_uvc(self, mode):