Compare commits
5 Commits
25b3cb7f2e
...
f12a289c57
| Author | SHA1 | Date | |
|---|---|---|---|
| f12a289c57 | |||
| 621c107be1 | |||
| a3bb7f0701 | |||
| 0557ba7f1c | |||
| 79f733126b |
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*.pyc
|
||||
|
||||
929
QT5_Project/KD_ZM_8_XCF/APPWindow.py
Normal file
@ -0,0 +1,929 @@
|
||||
# This Python file uses the following encoding: utf-8
|
||||
import sys
|
||||
import time
|
||||
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
|
||||
from PyQt5.QtGui import QImage, QPixmap, QColor, QKeySequence
|
||||
from UIFrameWork import UIFrameWork
|
||||
from UIFrameWork import *
|
||||
# 添加当前脚本的父级目录到 sys.path
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
from Shared_CODE.CameraThread import CameraThread
|
||||
from PyQt5.QtWidgets import QApplication, QMainWindow, QStackedWidget
|
||||
from PyQt5.QtWidgets import QDesktopWidget
|
||||
|
||||
import menu_utils as utils
|
||||
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 QT5_Project.Shared_CODE.FaceRecognitionProtocol import *
|
||||
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'))
|
||||
|
||||
|
||||
# 页面文件,动态构建 UI 文件的路径
|
||||
uiFile_P00DeviceList = os.path.join(ui_path, "P00DeviceList.ui")
|
||||
uiFile_P01DeviceMenu = os.path.join(ui_path, "P01DeviceMenu.ui")
|
||||
uiFile_P02DataView = os.path.join(ui_path, "P02DataView.ui")
|
||||
uiFile_P03SwitchAction = os.path.join(ui_path, "P03SwitchAction.ui")
|
||||
uiFile_P04ParamSet = os.path.join(ui_path, "P04ParamSet.ui")
|
||||
|
||||
uiFile_P05CameraView = os.path.join(ui_path, "P05CameraView.ui")
|
||||
uiFile_P05_01_FaceCameraView = os.path.join(ui_path, "P05_01_FaceCameraView.ui")
|
||||
|
||||
uiFile_P06FaultQuery = os.path.join(ui_path, "P06FaultQuery.ui")
|
||||
uiFile_P07SystemSet = os.path.join(ui_path, "P07SystemSet.ui")
|
||||
uiFile_P08FieldTestAction = os.path.join(ui_path, "P08FieldTestAction.ui")
|
||||
uiFile_P11LightDeviceMenu = os.path.join(ui_path, "P11LightDeviceMenu.ui")
|
||||
uiFile_P12LightDataView = os.path.join(ui_path, "P12LightDataView.ui")
|
||||
uiFile_P13LightSwitchAction = os.path.join(ui_path, "P13LightSwitchAction.ui")
|
||||
uiFile_P14LightParamSet = os.path.join(ui_path, "P14LightParamSet.ui")
|
||||
uiFile_P16LightFaultQuery = os.path.join(ui_path, "P16LightFaultQuery.ui")
|
||||
uiFile_P17LightSystemSet = os.path.join(ui_path, "P17LightSystemSet.ui")
|
||||
uiFile_P18LightFieldTestAction = os.path.join(ui_path, "P18LightFieldTestAction.ui")
|
||||
|
||||
COLOR_RED = QColor("#EE2D2D").name()
|
||||
COLOR_GREEN = QColor(Qt.green).name()
|
||||
COLOR_BLUE = QColor(Qt.blue).name()
|
||||
COLOR_YELLOW = QColor(Qt.yellow).name()
|
||||
|
||||
COLOR_NORMAL = QColor("#000000").name()
|
||||
COLOR_ALARM_NORMAL = QColor("#ECECEC").name()
|
||||
COLOR_ALARM_ERROR_TEXT = QColor("#B1E5FC").name()
|
||||
COLOR_ALARM_ERROR_BG = QColor("#E17176").name()
|
||||
|
||||
COLOR_VALUE_NORMAL_YELLOW = QColor("#F8C822").name()
|
||||
COLOR_VALUE_NORMAL_BLUE = QColor("#4E76D4").name()
|
||||
COLOR_VALUE_NORMAL_READ = QColor("#CE5D62").name()
|
||||
COLOR_VALUE_NORMAL_GREEN = QColor("#83BF6E").name()
|
||||
|
||||
|
||||
|
||||
def get_camera_id_and_canvas_id(action : str) :
|
||||
camera_id = -1
|
||||
canvas_id = -1
|
||||
if "canvas" in action and "camera" in action :
|
||||
action_splits = action.split("_")
|
||||
for action_split_str in action_splits:
|
||||
if "camera" in action_split_str:
|
||||
camera_id = get_value_from_lead_value_str(action_split_str, "camera", -1)
|
||||
elif "canvas" in action_split_str:
|
||||
canvas_id = get_value_from_lead_value_str(action_split_str, "canvas", -1)
|
||||
return camera_id, canvas_id
|
||||
|
||||
|
||||
#根据回路选择摄像头url地址
|
||||
def search_camera_url(camera_id : int) :
|
||||
cameral_url = None
|
||||
for config_dict in group_config.comm_thread_config :
|
||||
device_list = utils.dict_or_object_get_attr(config_dict, "device_list", None)
|
||||
if device_list != None :
|
||||
for item_dict in device_list :
|
||||
config_camera_id = utils.dict_or_object_get_attr(item_dict, "circuit_id", -1)
|
||||
if config_camera_id == camera_id :
|
||||
cameral_url = utils.dict_or_object_get_attr(item_dict, "camera_url", None)
|
||||
if cameral_url != None :
|
||||
return cameral_url
|
||||
return cameral_url
|
||||
|
||||
menu_page_widget_list = []
|
||||
|
||||
class PageTemplate(UIFrameWork): # 页面模板类,包含各子页面公用功能
|
||||
def __init__(self, parent_window): #
|
||||
UIFrameWork.__init__(self) #
|
||||
self.parent_window : APPWindow = parent_window
|
||||
|
||||
def connect_matched_camera_canvas(self) :
|
||||
page_widget : UIFrameWork = self.parent_window.stack.currentWidget()
|
||||
if page_widget != None :
|
||||
for canvas_id in range(9) :
|
||||
camera_id , face_detect = page_widget.get_canvas_prop(canvas_id)
|
||||
if camera_id >= 0 :
|
||||
self.parent_window.connect_camera_to_canvas(page_widget, camera_id, canvas_id, face_detect)
|
||||
|
||||
def virtual_connect_canvas_to_camera(self, canvas_id : int, camera_id : int, is_visible : bool = True) :
|
||||
if camera_id >= 0 and canvas_id >= 0 and canvas_id < len(self.parent_window.camera_thread_list) :
|
||||
face_detect = 0
|
||||
canvas_object = self.search_canvas_object(canvas_id)
|
||||
if canvas_object != None :
|
||||
face_detect = get_tip_face_detection(canvas_object.statusTip())
|
||||
|
||||
camera_thread : CameraThread = self.parent_window.camera_thread_list[camera_id]
|
||||
if camera_thread != None :
|
||||
if not camera_thread.is_emit and is_visible:
|
||||
self.show_camera_error(camera_id)
|
||||
|
||||
if camera_thread.is_emit:
|
||||
self.connect_camera_thread(camera_thread, canvas_id, is_visible)
|
||||
self.parent_window.camera_signal.emit(camera_id)
|
||||
camera_thread.face_detection = face_detect
|
||||
|
||||
if hasattr(self, "CameraChioceLabel") :
|
||||
# self.CameraChioceLabel.setStyleSheet("color: rgb(255, 255, 255); font-size: 50px;")
|
||||
self.CameraChioceLabel.setText("回路" + str(camera_id+1))
|
||||
else:
|
||||
self.show_camera_error(camera_id)
|
||||
|
||||
def show_camera_error(self, camera_id) :
|
||||
inform_box : DialogInform = DialogInform()
|
||||
inform_box.information("提示", f"视频流{camera_id+1}无法初始化或失去连接!")
|
||||
|
||||
#定义虚函数, 进入页面时调用
|
||||
def virtual_on_page_enter(self) :
|
||||
pass
|
||||
|
||||
#定义虚函数, 退出页面时调用
|
||||
def virtual_on_page_leave(self) :
|
||||
pass
|
||||
|
||||
#重载虚函数, 切换页面时调用
|
||||
def virtual_change_to_page(self, page) :
|
||||
if self.parent_window == None :
|
||||
return
|
||||
|
||||
self_page_widget : PageTemplate = self.parent_window.stack.currentWidget()
|
||||
if self_page_widget == None :
|
||||
return
|
||||
|
||||
target_page_widget : PageTemplate = None
|
||||
|
||||
if page >= 0 :
|
||||
target_page_widget = self.parent_window.search_page_widget(page)
|
||||
if target_page_widget in menu_page_widget_list:
|
||||
while len(menu_page_widget_list) > 0 :
|
||||
pop_page_widget = menu_page_widget_list.pop()
|
||||
if pop_page_widget == None or pop_page_widget == target_page_widget:
|
||||
break
|
||||
else :
|
||||
while len(menu_page_widget_list) > 0 :
|
||||
pop_page_widget = menu_page_widget_list.pop()
|
||||
if pop_page_widget == self :
|
||||
continue
|
||||
else :
|
||||
target_page_widget = pop_page_widget
|
||||
break
|
||||
|
||||
if target_page_widget == None :
|
||||
target_page_widget = self.parent_window.allpages_list[0]
|
||||
|
||||
if target_page_widget != None :
|
||||
menu_page_widget_list.append(target_page_widget)
|
||||
self_page_widget.virtual_on_page_leave()
|
||||
self.parent_window.stack.setCurrentWidget(target_page_widget)
|
||||
target_page_widget.virtual_on_page_enter()
|
||||
self.connect_matched_camera_canvas()
|
||||
|
||||
def virtual_widget_action_process(self, widget : QWidget, action : str) :
|
||||
action_splits = action.split("+")
|
||||
page_id = -1
|
||||
circuit_id = -1
|
||||
main_index = -1
|
||||
add_circuit = -1
|
||||
binding_circuit = -1
|
||||
for action_split_str in action_splits :
|
||||
if "SetPage" in action_split_str :
|
||||
page_id = get_value_from_lead_value_str(action_split_str, "SetPage", -1)
|
||||
elif "SetCircuit" in action_split_str :
|
||||
circuit_id = get_value_from_lead_value_str(action_split_str, "SetCircuit", -1)
|
||||
elif "SetMain" in action_split_str:
|
||||
main_index = get_value_from_lead_value_str(action_split_str, "SetMain", -1)
|
||||
elif "AddCircuit" in action_split_str :
|
||||
add_circuit = get_value_from_lead_value_str(action_split_str, "AddCircuit", -1)
|
||||
elif "SetBinding" in action_split_str :
|
||||
binding_circuit = get_value_from_lead_value_str(action_split_str, "SetBinding", 1)
|
||||
|
||||
|
||||
print("<virtual_widget_action_process>@Line:",inspect.currentframe().f_lineno,'<circuit_id> = ',circuit_id,'<Action> = ',action_splits)
|
||||
|
||||
if add_circuit >= 0 :
|
||||
tip_str : str = page_widget.statusTip()
|
||||
circuit_id = get_tip_circuit(tip_str)
|
||||
circuit_id = circuit_id + 1
|
||||
|
||||
if binding_circuit > 0 :
|
||||
circuit_id = self.get_circuit_from_object(widget)
|
||||
|
||||
target_page_widget = self.parent_window.search_page_widget(page_id)
|
||||
page_widget : PageTemplate = target_page_widget
|
||||
|
||||
if page_id >= 0 : # 功能标记:执行页面跳转功能
|
||||
target_page_widget = self.parent_window.search_page_widget(page_id)
|
||||
|
||||
if target_page_widget != None :
|
||||
if circuit_id >= 0 :
|
||||
target_page_widget.set_page_circuit(circuit_id)
|
||||
self.virtual_change_to_page(page_id)
|
||||
|
||||
if main_index >= 0 : # 功能标记:执行控件主索引设定
|
||||
self.set_menu_main_index(main_index) # 设置页面主索引字段<main>,可以跨组选择控件
|
||||
|
||||
if circuit_id >= 0 :
|
||||
indicator : QLineEdit = target_page_widget.findChild(QLineEdit,"BindNum_Title")
|
||||
indicator.setText("当前回路为 %d"%(circuit_id + 1))
|
||||
|
||||
# 显示提示图标
|
||||
indicator_Label : QLabel = target_page_widget.findChild(QLabel,"indicator_Label")
|
||||
tip_str : str = indicator_Label.statusTip()
|
||||
imag_file_name = get_imag_value_file_name(tip_str, circuit_id)
|
||||
if imag_file_name != None :
|
||||
self.modify_object_style_sheet(indicator_Label, "background-image", "url(%s)"%(imag_file_name))
|
||||
else :
|
||||
self.reset_object_style_sheet(indicator_Label)
|
||||
|
||||
camera_id, canvas_id = get_camera_id_and_canvas_id(action)
|
||||
self.virtual_connect_canvas_to_camera(canvas_id, camera_id)
|
||||
|
||||
#P00设备列表页面
|
||||
class QDeviceListPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P00DeviceList)
|
||||
|
||||
# 回路1测试:开关合闸1,总开关0,无报警
|
||||
json_dict0 = { "SwitchStatus" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"SwitchType" : {"value" :"0", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"AlarmMessage" : {"value" :"无故障","type" : "alarm", "color" : COLOR_ALARM_NORMAL},
|
||||
"Voltage" : {"value" :"1143", "color" : COLOR_VALUE_NORMAL_YELLOW},
|
||||
"Current" : {"value" :"60", "color" : COLOR_VALUE_NORMAL_READ},
|
||||
"Power" : {"value" :"20", "color" : COLOR_VALUE_NORMAL_BLUE},
|
||||
"Electricity" : {"value" :"45321", "color" : COLOR_VALUE_NORMAL_GREEN},
|
||||
}
|
||||
|
||||
# 回路2测试:开关合闸1,分开关1,无报警
|
||||
json_dict1 = { "SwitchStatus" : {"value" :"0", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"SwitchType" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"AlarmMessage" : {"value" :"开关未到位","type" : "alarm","color" : COLOR_ALARM_ERROR_TEXT},
|
||||
"Voltage" : {"value" :"1120", "color" : COLOR_VALUE_NORMAL_YELLOW},
|
||||
"Current" : {"value" :"45", "color" : COLOR_VALUE_NORMAL_READ},
|
||||
"Power" : {"value" :"30", "color" : COLOR_VALUE_NORMAL_BLUE},
|
||||
"Electricity" : {"value" :"46321", "color" : COLOR_VALUE_NORMAL_GREEN},
|
||||
}
|
||||
|
||||
# 回路3测试:开关合闸1,总开关0,无报警
|
||||
json_dict2 = { "SwitchStatus" : {"value" :"0", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"SwitchType" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"AlarmMessage" : {"value" :"正常运行,无告警信息","type" : "alarm", "color" : COLOR_ALARM_NORMAL},
|
||||
"Voltage" : {"value" :"1065", "color" : COLOR_VALUE_NORMAL_YELLOW},
|
||||
"Current" : {"value" :"30", "color" : COLOR_VALUE_NORMAL_READ},
|
||||
"Power" : {"value" :"16", "color" : COLOR_VALUE_NORMAL_BLUE},
|
||||
"Electricity" : {"value" :"1321", "color" : COLOR_VALUE_NORMAL_GREEN},
|
||||
}
|
||||
|
||||
# 回路4测试:开关合闸1,总开关0,无报警
|
||||
json_dict3 = { "SwitchStatus" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"SwitchType" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"AlarmMessage" : {"value" :"正常运行,无告警信息","type" : "alarm", "color" : COLOR_ALARM_NORMAL},
|
||||
"Voltage" : {"value" :"1141", "color" : COLOR_VALUE_NORMAL_YELLOW},
|
||||
"Current" : {"value" :"61", "color" : COLOR_VALUE_NORMAL_READ},
|
||||
"Power" : {"value" :"26", "color" : COLOR_VALUE_NORMAL_BLUE},
|
||||
"Electricity" : {"value" :"32321", "color" : COLOR_VALUE_NORMAL_GREEN},
|
||||
}
|
||||
|
||||
# 回路5测试:开关合闸1,总开关0,无报警
|
||||
json_dict4 = { "SwitchStatus" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"SwitchType" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"AlarmMessage" : {"value" :"正常运行,无告警信息","type" : "alarm", "color" : COLOR_ALARM_NORMAL},
|
||||
"Voltage" : {"value" :"2133", "color" : COLOR_VALUE_NORMAL_YELLOW},
|
||||
"Current" : {"value" :"61", "color" : COLOR_VALUE_NORMAL_READ},
|
||||
"Power" : {"value" :"26", "color" : COLOR_VALUE_NORMAL_BLUE},
|
||||
"Electricity" : {"value" :"4453", "color" : COLOR_VALUE_NORMAL_GREEN},
|
||||
}
|
||||
|
||||
# 回路6测试:开关合闸1,总开关0,无报警
|
||||
json_dict5 = { "SwitchStatus" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"SwitchType" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"AlarmMessage" : {"value" :"正常运行,无告警信息","type" : "alarm", "color" : COLOR_ALARM_NORMAL},
|
||||
"Voltage" : {"value" :"1212", "color" : COLOR_VALUE_NORMAL_YELLOW},
|
||||
"Current" : {"value" :"61", "color" : COLOR_VALUE_NORMAL_READ},
|
||||
"Power" : {"value" :"27", "color" : COLOR_VALUE_NORMAL_BLUE},
|
||||
"Electricity" : {"value" :"11212", "color" : COLOR_VALUE_NORMAL_GREEN},
|
||||
}
|
||||
|
||||
# 回路7测试:开关合闸1,总开关0,无报警
|
||||
json_dict6 = { "SwitchStatus" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"SwitchType" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED},
|
||||
"AlarmMessage" : {"value" :"正常运行,无告警信息","type" : "alarm", "color" : COLOR_ALARM_NORMAL},
|
||||
"Voltage" : {"value" :"1564", "color" : COLOR_VALUE_NORMAL_YELLOW},
|
||||
"Current" : {"value" :"61", "color" : COLOR_VALUE_NORMAL_READ},
|
||||
"Power" : {"value" :"32", "color" : COLOR_VALUE_NORMAL_BLUE},
|
||||
"Electricity" : {"value" :"45341", "color" : COLOR_VALUE_NORMAL_GREEN},
|
||||
}
|
||||
|
||||
# self.flush_widgets(0, json_dict0)
|
||||
# self.flush_widgets(1, json_dict1)
|
||||
# self.flush_widgets(2, json_dict2)
|
||||
# self.flush_widgets(3, json_dict3)
|
||||
# # self.flush_widgets(4, json_dict4)
|
||||
# # self.flush_widgets(5, json_dict5)
|
||||
# # self.flush_widgets(6, json_dict6)
|
||||
|
||||
#P01设备列表页面
|
||||
class QDeviceMenuPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P01DeviceMenu)
|
||||
|
||||
#P02数据查看页面
|
||||
class QDataViewPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P02DataView)
|
||||
|
||||
json_dict0 = {"Uab" :"1111", "Ubc" : "1111", "Uca" : "1111", "Uo" : "11" , "Iab" : "1111", "Ibc" : "1111", "Ica" : "1111", "Io" : "1111"}
|
||||
json_dict1 = {"Uab" :"2222", "Ubc" : "2222", "Uca" : "2222", "Uo" : "22" , "Iab" : "2222", "Ibc" : "2222", "Ica" : "2222", "Io" : "2222"}
|
||||
json_dict2 = {"Uab" :"3333", "Ubc" : "3333", "Uca" : "3333", "Uo" : "33" , "Iab" : "3333", "Ibc" : "3333", "Ica" : "3333", "Io" : "3333"}
|
||||
|
||||
# self.flush_widgets(0, json_dict0)
|
||||
# self.flush_widgets(1, json_dict1)
|
||||
# self.flush_widgets(2, json_dict2)
|
||||
|
||||
self.camera_str = "0"
|
||||
|
||||
def virtual_on_page_enter(self):
|
||||
children = self.findChildren(QLabel)
|
||||
for child in children:
|
||||
if child.objectName() == "TestCameraView" :
|
||||
status_str = child.statusTip()
|
||||
get_circuit = self.get_circuit_from_object(child)
|
||||
print(status_str, get_circuit)
|
||||
new_status_str = status_str.replace(f"camera{self.camera_str}", f"camera{get_circuit}")
|
||||
self.camera_str = get_circuit
|
||||
self.parent_window.camera_signal.emit(int(get_circuit))
|
||||
child.setStatusTip(new_status_str)
|
||||
|
||||
#P03开关操作页面
|
||||
class QSwitchActionPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P03SwitchAction)
|
||||
|
||||
json_dict0 = {"SwitchStatus" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED}}
|
||||
json_dict1 = {"SwitchStatus" : {"value" :"0", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED}}
|
||||
json_dict2 = {"SwitchStatus" : {"value" :"1", "bk_color" : COLOR_NORMAL, "color" : COLOR_RED}}
|
||||
|
||||
# self.flush_widgets(0, json_dict0)
|
||||
# self.flush_widgets(1, json_dict1)
|
||||
# self.flush_widgets(2, json_dict2)
|
||||
|
||||
self.camera_str = "0"
|
||||
|
||||
def virtual_on_page_enter(self):
|
||||
children = self.findChildren(QLabel)
|
||||
for child in children:
|
||||
if child.objectName() == "TestCameraView" :
|
||||
status_str = child.statusTip()
|
||||
get_circuit = self.get_circuit_from_object(child)
|
||||
print(status_str, get_circuit)
|
||||
new_status_str = status_str.replace(f"camera{self.camera_str}", f"camera{get_circuit}")
|
||||
self.camera_str = get_circuit
|
||||
self.parent_window.camera_signal.emit(int(get_circuit))
|
||||
child.setStatusTip(new_status_str)
|
||||
|
||||
#P04参数设置页面
|
||||
class QParamSetPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P04ParamSet)
|
||||
|
||||
json_dict0 = {"Uab" :"1000", "Ubc" : "5", "Uca" : "50"}
|
||||
json_dict1 = {"Uab" :"1111", "Ubc" : "111", "Uca" : "111"}
|
||||
json_dict2 = {"Uab" :"2222", "Ubc" : "222", "Uca" : "222"}
|
||||
|
||||
# self.flush_widgets(0, json_dict0)
|
||||
# self.flush_widgets(1, json_dict1)
|
||||
# self.flush_widgets(2, json_dict2)
|
||||
'''
|
||||
# 查找 QLineEdit 控件
|
||||
self.line_edit = self.findChild(QLineEdit)
|
||||
if self.line_edit:
|
||||
# 重写 QLineEdit 的鼠标按下事件
|
||||
self.line_edit.mousePressEvent = self.on_line_edit_clicked
|
||||
def on_line_edit_clicked(self, event):
|
||||
|
||||
self.key_enter_process()
|
||||
# 调用原始的鼠标按下事件处理方法
|
||||
QLineEdit.mousePressEvent(self.line_edit, event)
|
||||
|
||||
'''
|
||||
#P05视频查看页面 QFaultQueryPage
|
||||
class QCameraViewPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P05CameraView)
|
||||
|
||||
def virtual_on_page_enter(self) :
|
||||
self.parent_window.camera_signal.emit(0)
|
||||
#P05_01人脸视频查看页面
|
||||
class QFaceCameraViewPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P05_01_FaceCameraView)
|
||||
# 读取配置
|
||||
self.default_baud = getattr(group_config, "BAUDRATE", 115200)
|
||||
|
||||
# 串口/线程变量
|
||||
self.ser = None
|
||||
self.worker = SerialWorker(lambda: self.ser)
|
||||
self.worker.frame_received.connect(self.on_frame)
|
||||
self.worker.log_message.connect(self.log)
|
||||
self.worker.start()
|
||||
|
||||
self.video_worker = None
|
||||
self.last_port = None
|
||||
self.last_enroll_name = ""
|
||||
self.current_video_mode = 0
|
||||
self.current_face_box = 0
|
||||
|
||||
# 定时器:串口监控 & 视频重连
|
||||
self.t_port = QTimer(self)
|
||||
self.t_port.setInterval(1000)
|
||||
self.t_port.timeout.connect(self._port_tick)
|
||||
self.t_port.start()
|
||||
|
||||
self.t_video = QTimer(self)
|
||||
self.t_video.setInterval(2000)
|
||||
self.t_video.timeout.connect(self._check_video)
|
||||
self.t_video.start()
|
||||
|
||||
self.face_verify_result = None # 用于存储人脸验证结果
|
||||
|
||||
self.auto_connect_serial()
|
||||
# 串口管理
|
||||
|
||||
def auto_connect_serial(self):
|
||||
ports = [p.device for p in serial.tools.list_ports.comports()]
|
||||
if not ports:
|
||||
self.log("[WARN] 未检测到任何串口设备")
|
||||
return
|
||||
|
||||
sys_platform = platform.system()
|
||||
preferred_port = group_config.DEFAULT_PORT.get(sys_platform)
|
||||
|
||||
if preferred_port and preferred_port in ports:
|
||||
self.last_port = preferred_port
|
||||
self.log(f"[INFO] 已选择默认串口 {preferred_port},等待自动连接")
|
||||
else:
|
||||
self.log(f"[WARN] {sys_platform} 平台未找到配置串口或设备不在列表: {ports}")
|
||||
|
||||
def _port_tick(self):
|
||||
ports = {p.device for p in serial.tools.list_ports.comports()}
|
||||
|
||||
# 如果串口对象不存在或已关闭
|
||||
if not self.ser or not getattr(self.ser, "is_open", False):
|
||||
# 串口掉线,自动关闭
|
||||
if self.ser: # 如果之前有串口对象
|
||||
self.close_serial()
|
||||
# 尝试自动重连
|
||||
if self.last_port in ports:
|
||||
self.open_serial(self.last_port)
|
||||
|
||||
def open_serial(self, port=None):
|
||||
port = port or self.cb_port.currentText() or self.last_port
|
||||
if not port:
|
||||
self.log("[WARN] 没有选择串口")
|
||||
return
|
||||
try:
|
||||
baud = self.default_baud
|
||||
self.ser = serial.Serial(port, baudrate=baud, timeout=0.05)
|
||||
self.last_port = port
|
||||
# self.btn_conn.setText("断开")
|
||||
self.log(f"[INFO] 已连接 {port} @ {baud}")
|
||||
except Exception as e:
|
||||
self.log(f"[ERR] 打开串口失败: {e}")
|
||||
self.ser = None
|
||||
|
||||
def close_serial(self):
|
||||
if self.ser:
|
||||
try:
|
||||
self.ser.close()
|
||||
except:
|
||||
pass
|
||||
self.ser = None
|
||||
self.log("[INFO] 串口已关闭")
|
||||
|
||||
def toggle_conn(self):
|
||||
if self.ser and getattr(self.ser, "is_open", False):
|
||||
self.close_serial()
|
||||
else:
|
||||
self.open_serial()
|
||||
|
||||
def send(self, frame: bytes):
|
||||
if not self.ser or not getattr(self.ser, "is_open", False):
|
||||
inform_box : DialogInform = DialogInform()
|
||||
inform_box.information("提示", "请先连接串口")
|
||||
return
|
||||
try:
|
||||
self.ser.write(frame)
|
||||
self.log("> " + frame.hex(" "))
|
||||
except Exception as e:
|
||||
self.log(f"[ERR] write: {e}")
|
||||
|
||||
# ---------------- 定时器检测 ----------------
|
||||
def _check_video(self):
|
||||
if self.video_worker and not self.video_worker.isRunning():
|
||||
self.log("[WARN] 摄像头线程已停止")
|
||||
self.video_worker=None # 自动重连可在这里实现
|
||||
|
||||
# 帧处理
|
||||
def on_frame(self, fr: dict):
|
||||
self.log("< " + fr["raw"].hex(" "))
|
||||
msg_id = fr.get("msg_id")
|
||||
data = fr.get("data", b"")
|
||||
|
||||
if msg_id == MID_REPLY:
|
||||
info = parse_reply(data)
|
||||
self.log(f"[REPLY] {info}")
|
||||
if info.get("mid") in (CMD_ENROLL, CMD_ENROLL_ITG) and info.get("result") == 0x00:
|
||||
user_id = info.get("user_id")
|
||||
# 如果用户名为空,使用用户ID作为用户名
|
||||
user_name = self.last_enroll_name if self.last_enroll_name else str(user_id)
|
||||
if user_id: # 只需检查user_id存在即可,因为user_name已确保有值
|
||||
if save_user(user_id, user_name):
|
||||
self.log(f"[INFO] 用户 {user_name}(ID={user_id}) 已保存")
|
||||
else:
|
||||
QMessageBox.warning(self, "提示", f"用户ID {user_id} 已存在!")
|
||||
elif info.get("mid") == CMD_VERIFY :
|
||||
|
||||
if info.get("result") == 0x00:
|
||||
user_id = info.get("user_id")
|
||||
print(f"[INFO] 用户(ID={user_id}) 验证通过")
|
||||
self.face_verify_result = True
|
||||
else:
|
||||
self.face_verify_result = False
|
||||
|
||||
elif msg_id == MID_NOTE:
|
||||
info = parse_note(data)
|
||||
self.log(f"[NOTE] {info}")
|
||||
|
||||
# 日志
|
||||
def log(self, s: str):
|
||||
ts = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
self.txt_log.append(f"[{ts}] {s}")
|
||||
self.txt_log.moveCursor(self.txt_log.textCursor().End)
|
||||
pass
|
||||
|
||||
def save_log(self):
|
||||
path, _ = QFileDialog.getSaveFileName(self, "保存日志", "", "Text files (*.txt)")
|
||||
if not path:
|
||||
return
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(self.txt_log.toPlainText())
|
||||
self.log(f"[INFO] 日志已保存到 {path}")
|
||||
|
||||
def closeEvent(self,e):
|
||||
if self.video_worker and self.video_worker.isRunning():
|
||||
self.video_worker.stop()
|
||||
self.video_worker.wait(300)
|
||||
if self.ser and getattr(self.ser,"is_open",False):
|
||||
self.close_serial()
|
||||
super().closeEvent(e)
|
||||
|
||||
|
||||
|
||||
#P06故障查询页面 QFaultQueryPage
|
||||
class QFaultQueryPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P06FaultQuery)
|
||||
self.alarm_index = 0
|
||||
|
||||
def virtual_on_page_enter(self) :
|
||||
self.alarm_index = 0
|
||||
self.query_alarm_index()
|
||||
self.timer = QTimer()
|
||||
self.timer.timeout.connect(self.query_alarm_index)
|
||||
self.timer.start(4000)
|
||||
|
||||
def virtual_on_page_leave(self) :
|
||||
self.alarm_index = 0
|
||||
|
||||
def query_alarm_index(self):
|
||||
circuit_id = self.get_page_circuit()
|
||||
unique_name = self.get_unique_name_from_circuit(circuit_id)
|
||||
if unique_name != None :
|
||||
publish_topic = "request/alarm/" + unique_name
|
||||
publish_message = '{"index" : "%s"}'%(self.alarm_index)
|
||||
self.mqtt_publish_and_wait_response(publish_topic, publish_message, object, 1000)
|
||||
|
||||
#action 处理虚函数, 只适用于故障查询页面
|
||||
def virtual_widget_action_process(self, widget : QWidget, action : str) :
|
||||
PageTemplate.virtual_widget_action_process(self, widget, action)
|
||||
alarm_adjust = 0
|
||||
if "CmdAlarmNext" in action :
|
||||
alarm_adjust = 1
|
||||
elif "CmdAlarmPrev" in action :
|
||||
alarm_adjust = -1
|
||||
|
||||
if alarm_adjust != 0 :
|
||||
self.alarm_index = self.alarm_index + alarm_adjust
|
||||
if self.alarm_index < 0 :
|
||||
self.alarm_index = 0
|
||||
self.query_alarm_index()
|
||||
|
||||
#P07系统参数设置页面
|
||||
class QSystemSetPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P07SystemSet)
|
||||
|
||||
#P08现场试验页面
|
||||
class QFieldTestAction(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P08FieldTestAction)
|
||||
|
||||
# P11照明菜单选择
|
||||
class QLightMenuPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P11LightDeviceMenu)
|
||||
|
||||
# P12照明运行数据页面
|
||||
class QRunDataPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P12LightDataView)
|
||||
|
||||
self.camera_str = "0"
|
||||
|
||||
def virtual_on_page_enter(self):
|
||||
children = self.findChildren(QLabel)
|
||||
for child in children:
|
||||
if child.objectName() == "TestCameraView" :
|
||||
status_str = child.statusTip()
|
||||
get_circuit = self.get_circuit_from_object(child)
|
||||
print(status_str, get_circuit)
|
||||
new_status_str = status_str.replace(f"camera{self.camera_str}", f"camera{get_circuit}")
|
||||
self.camera_str = get_circuit
|
||||
self.parent_window.camera_signal.emit(int(get_circuit))
|
||||
child.setStatusTip(new_status_str)
|
||||
|
||||
# P13照明开关操作页面
|
||||
class QLightSwitchActionPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P13LightSwitchAction)
|
||||
|
||||
self.camera_str = "0"
|
||||
|
||||
def virtual_on_page_enter(self):
|
||||
children = self.findChildren(QLabel)
|
||||
for child in children:
|
||||
if child.objectName() == "TestCameraView" :
|
||||
status_str = child.statusTip()
|
||||
get_circuit = self.get_circuit_from_object(child)
|
||||
print(status_str, get_circuit)
|
||||
new_status_str = status_str.replace(f"camera{self.camera_str}", f"camera{get_circuit}")
|
||||
self.camera_str = get_circuit
|
||||
self.parent_window.camera_signal.emit(int(get_circuit))
|
||||
child.setStatusTip(new_status_str)
|
||||
|
||||
# P14照明参数设置页面
|
||||
class QLightParamSetPage(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P14LightParamSet)
|
||||
|
||||
# P16照明故障查询
|
||||
class QLightFaultQuery(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P16LightFaultQuery)
|
||||
|
||||
def virtual_on_page_enter(self) :
|
||||
self.alarm_index = 0
|
||||
self.query_alarm_index()
|
||||
self.timer = QTimer()
|
||||
self.timer.timeout.connect(self.query_alarm_index)
|
||||
self.timer.start(4000)
|
||||
|
||||
def virtual_on_page_leave(self) :
|
||||
self.alarm_index = 0
|
||||
|
||||
def query_alarm_index(self):
|
||||
circuit_id = self.get_page_circuit()
|
||||
unique_name = self.get_unique_name_from_circuit(circuit_id)
|
||||
if unique_name != None :
|
||||
publish_topic = "request/alarm/" + unique_name
|
||||
publish_message = '{"index" : "%s"}'%(self.alarm_index)
|
||||
self.mqtt_publish_and_wait_response(publish_topic, publish_message, object, 1000)
|
||||
|
||||
#action 处理虚函数, 只适用于故障查询页面
|
||||
def virtual_widget_action_process(self, widget : QWidget, action : str) :
|
||||
PageTemplate.virtual_widget_action_process(self, widget, action)
|
||||
alarm_adjust = 0
|
||||
if "CmdAlarmNext" in action :
|
||||
alarm_adjust = 1
|
||||
elif "CmdAlarmPrev" in action :
|
||||
alarm_adjust = -1
|
||||
|
||||
if alarm_adjust != 0 :
|
||||
self.alarm_index = self.alarm_index + alarm_adjust
|
||||
if self.alarm_index < 0 :
|
||||
self.alarm_index = 0
|
||||
self.query_alarm_index()
|
||||
|
||||
# P17照明系统参数
|
||||
class QLightSystemSet(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P17LightSystemSet)
|
||||
|
||||
# P18现场试验页面
|
||||
class QLightFieldTestAction(PageTemplate):
|
||||
def __init__(self, parent_window):
|
||||
PageTemplate.__init__(self, parent_window)
|
||||
self.load_window_ui(uiFile_P18LightFieldTestAction)
|
||||
|
||||
class APPWindow(QMainWindow):
|
||||
camera_signal = pyqtSignal(int)
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
# 获取屏幕分辨率
|
||||
screen = QDesktopWidget().screenGeometry()
|
||||
screen_width = screen.width()
|
||||
screen_height = screen.height()
|
||||
|
||||
self.stack = QStackedWidget(self)
|
||||
self.setGeometry(0, 0, screen_width, screen_height) # 设置窗口大小为屏幕分辨率
|
||||
self.stack.setGeometry(0, 0, screen_width, screen_height) # 设置堆叠窗口大小为屏幕分辨率
|
||||
|
||||
#调试的时候用下面两行,全屏就注释
|
||||
# self.setGeometry(0, 0, 1024, 768)
|
||||
# self.stack.setGeometry(0, 0, 1024, 768)
|
||||
|
||||
|
||||
self.showFullScreen()
|
||||
|
||||
self.menu_sequence_list : PageTemplate = []
|
||||
self.camera_thread_list : CameraThread = [None, None, None, None, None, None, None, None, None]
|
||||
self.allpages_list : PageTemplate = []
|
||||
|
||||
self.P00_DeviceList : PageTemplate = QDeviceListPage(parent_window = self)
|
||||
self.P01_DeviceMenu : PageTemplate = QDeviceMenuPage(parent_window = self)
|
||||
self.P02_DataView : PageTemplate = QDataViewPage(parent_window = self)
|
||||
self.P03_SwitchAction : PageTemplate = QSwitchActionPage(parent_window = self)
|
||||
self.P04_ParamSet : PageTemplate = QParamSetPage(parent_window = self)
|
||||
self.P05_CameraView : PageTemplate = QCameraViewPage(parent_window = self)
|
||||
|
||||
self.P05_01_FaceCameraView : PageTemplate = QFaceCameraViewPage(parent_window = self)
|
||||
|
||||
self.P06_FaultQuery : PageTemplate = QFaultQueryPage(parent_window = self)
|
||||
self.P07_SystemSet : PageTemplate = QSystemSetPage(parent_window = self)
|
||||
self.P08_FieldTestAction : PageTemplate = QFieldTestAction(parent_window = self)
|
||||
self.P11_DeviceMenu : PageTemplate = QLightMenuPage(parent_window = self)
|
||||
self.P12_DateView : PageTemplate = QRunDataPage(parent_window = self)
|
||||
self.P13_SwitchAction : PageTemplate = QLightSwitchActionPage(parent_window = self)
|
||||
self.P14_ParamSet : PageTemplate = QLightParamSetPage(parent_window = self)
|
||||
self.P16_LightFaultQuery : PageTemplate = QLightFaultQuery(parent_window = self)
|
||||
self.P17_LightSystemSet : PageTemplate = QLightSystemSet(parent_window = self)
|
||||
self.P18_LightFieldTestAction : PageTemplate = QLightFieldTestAction(parent_window = self)
|
||||
|
||||
self.allpages_list.append(self.P00_DeviceList)
|
||||
self.allpages_list.append(self.P01_DeviceMenu)
|
||||
self.allpages_list.append(self.P02_DataView)
|
||||
self.allpages_list.append(self.P03_SwitchAction)
|
||||
self.allpages_list.append(self.P04_ParamSet)
|
||||
self.allpages_list.append(self.P05_CameraView)
|
||||
self.allpages_list.append(self.P05_01_FaceCameraView)
|
||||
self.allpages_list.append(self.P06_FaultQuery)
|
||||
self.allpages_list.append(self.P07_SystemSet)
|
||||
self.allpages_list.append(self.P08_FieldTestAction)
|
||||
self.allpages_list.append(self.P11_DeviceMenu)
|
||||
self.allpages_list.append(self.P12_DateView)
|
||||
self.allpages_list.append(self.P13_SwitchAction)
|
||||
self.allpages_list.append(self.P14_ParamSet)
|
||||
self.allpages_list.append(self.P16_LightFaultQuery)
|
||||
self.allpages_list.append(self.P17_LightSystemSet)
|
||||
self.allpages_list.append(self.P18_LightFieldTestAction)
|
||||
|
||||
self.stack.addWidget(self.P00_DeviceList)
|
||||
self.stack.addWidget(self.P01_DeviceMenu)
|
||||
self.stack.addWidget(self.P02_DataView)
|
||||
self.stack.addWidget(self.P03_SwitchAction)
|
||||
self.stack.addWidget(self.P04_ParamSet)
|
||||
self.stack.addWidget(self.P05_CameraView)
|
||||
self.stack.addWidget(self.P05_01_FaceCameraView)
|
||||
self.stack.addWidget(self.P06_FaultQuery)
|
||||
self.stack.addWidget(self.P07_SystemSet)
|
||||
self.stack.addWidget(self.P08_FieldTestAction)
|
||||
self.stack.addWidget(self.P11_DeviceMenu)
|
||||
self.stack.addWidget(self.P12_DateView)
|
||||
self.stack.addWidget(self.P13_SwitchAction)
|
||||
self.stack.addWidget(self.P14_ParamSet)
|
||||
self.stack.addWidget(self.P16_LightFaultQuery)
|
||||
self.stack.addWidget(self.P17_LightSystemSet)
|
||||
self.stack.addWidget(self.P18_LightFieldTestAction)
|
||||
|
||||
test_init = system_parameter()
|
||||
set_screen_blanking_time(test_init.get_screen_blanking_time())
|
||||
|
||||
def search_page_widget(self, page) :
|
||||
for list_item in self.allpages_list:
|
||||
window_page : UIFrameWork = list_item
|
||||
if window_page.page == page :
|
||||
return window_page
|
||||
return None
|
||||
|
||||
def connect_camera_to_canvas(self, page_widget : UIFrameWork, camera_id: int , canvas_id : int, face_detect : int = 0) :
|
||||
if camera_id >= 0 and canvas_id >= 0 and canvas_id < len(self.camera_thread_list) :
|
||||
camera_thread : CameraThread = self.camera_thread_list[camera_id]
|
||||
if camera_thread != None :
|
||||
page_widget.connect_camera_thread(camera_thread, canvas_id)
|
||||
camera_thread.face_detection = face_detect
|
||||
|
||||
def create_all_camera_thread(self) :
|
||||
for camera_id in range(len(self.camera_thread_list)) :
|
||||
_camera_url = search_camera_url(camera_id)
|
||||
if _camera_url != None :
|
||||
camera_thread = CameraThread(_camera_url, camera_id)
|
||||
camera_thread.set_video_cycle_ms(10)
|
||||
self.camera_thread_list[camera_id] = camera_thread
|
||||
self.camera_signal.connect(camera_thread.change_camera_url)
|
||||
|
||||
#摄像头与 界面进行绑定
|
||||
for index in range(self.stack.count()) :
|
||||
page_widget : UIFrameWork = self.stack.widget(index)
|
||||
page_widget.connect_matched_camera_canvas()
|
||||
|
||||
time.sleep(0.1)
|
||||
|
||||
#开启多个摄像头线程
|
||||
for camera_thread in self.camera_thread_list:
|
||||
thread_to_start : CameraThread = camera_thread
|
||||
if thread_to_start != None :
|
||||
thread_to_start.start()
|
||||
time.sleep(0.01)
|
||||
|
||||
def get_page_currentwidget(self) :
|
||||
return self.stack.currentWidget().sort_menu_list[self.stack.currentWidget().menu_key_index][1]
|
||||
|
||||
def closeEvent(self, event):
|
||||
reply = QMessageBox.question(self, '确认', '确定要退出吗?',
|
||||
QMessageBox.Yes | QMessageBox.No)
|
||||
if reply == QMessageBox.Yes:
|
||||
for camera_thread in self.camera_thread_list:
|
||||
thread_to_stop : CameraThread = camera_thread
|
||||
|
||||
if self.video_worker and self.video_worker.isRunning():
|
||||
self.video_worker.stop()
|
||||
self.video_worker.wait(300)
|
||||
if self.ser and getattr(self.ser,"is_open",False):
|
||||
self.close_serial()
|
||||
if thread_to_stop != None :
|
||||
thread_to_stop.close()
|
||||
|
||||
|
||||
for camera_thread in self.camera_thread_list:
|
||||
thread_to_stop : CameraThread = camera_thread
|
||||
if thread_to_stop != None :
|
||||
thread_to_stop.wait()
|
||||
|
||||
event.accept() # 接受关闭事件
|
||||
else:
|
||||
event.ignore() # 忽略关闭事件
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
#创建mqtt线程
|
||||
fvalue = float('06.00')
|
||||
value = round(fvalue)
|
||||
|
||||
_user_name = utils.dict_or_object_get_attr(group_config.mqtt_server, "user_name", "admin")
|
||||
_password = utils.dict_or_object_get_attr(group_config.mqtt_server, "password", "admin")
|
||||
_server = utils.dict_or_object_get_attr(group_config.mqtt_server, "remote", "127.0.0.1")
|
||||
_port = utils.dict_or_object_get_attr(group_config.mqtt_server, "port", 1883)
|
||||
|
||||
global_mqtt_thread = class_comm_mqtt_thread()
|
||||
global_mqtt_thread.set_mqtt_server(server = _server, port = _port, keep_alive = 60, user_name=_user_name, password=_password)
|
||||
|
||||
app = QApplication([])
|
||||
app_main_window = APPWindow()
|
||||
app_main_window.show()
|
||||
app_main_window.create_all_camera_thread()
|
||||
|
||||
for config_dict in group_config.comm_thread_config :
|
||||
device_list = utils.dict_or_object_get_attr(config_dict, "device_list", None)
|
||||
if device_list != None :
|
||||
for item_dict in device_list :
|
||||
circuit_id = utils.dict_or_object_get_attr(item_dict, "circuit_id", -1)
|
||||
circuit_unique_name = utils.dict_or_object_get_attr(item_dict, "unique_name", None)
|
||||
if circuit_unique_name != None :
|
||||
global_mqtt_thread.add_unique_object(circuit_unique_name, app_main_window.allpages_list)
|
||||
|
||||
global_mqtt_thread.start()
|
||||
app.exec_()
|
||||
global_mqtt_thread.close()
|
||||
global_mqtt_thread.join()
|
||||
|
||||
sys.exit(0)
|
||||
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Light_CameraView.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Light_DataView.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Light_DeviceMenu.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Light_FieldTestAction.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Light_ParamSet.png
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Light_SystemSet.png
Normal file
|
After Width: | Height: | Size: 196 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Ligth_FaultQuery.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/Light_image/Ligth_SwitchAction.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
3443
QT5_Project/KD_ZM_8_XCF/UI/P00DeviceList.ui
Normal file
339
QT5_Project/KD_ZM_8_XCF/UI/P01DeviceMenu.ui
Normal file
@ -0,0 +1,339 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P01DeviceMenu</class>
|
||||
<widget class="QMainWindow" name="P01DeviceMenu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=1</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QLabel" name="P01BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../image/DeviceMenu.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="Btns">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>234</x>
|
||||
<y>179</y>
|
||||
<width>771</width>
|
||||
<height>701</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Btn07">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>400</x>
|
||||
<y>229</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=7, Action=SetPage0,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>返回主页</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn01">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>114</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1,Action=SetPage2+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>运行数据</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn02">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>229</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=2, Action=SetPage3+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>开关操作</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn03">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>345</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=3, Action=SetPage4+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string> 保护参数设置</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn04">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>460</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=4, Action=SetPage7+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string> 系统参数设置</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<y>10</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>设备</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn05">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>575</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=5, Action=SetPage6+SetBinding+CmdAlarmNext,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>故障查询</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn06">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>400</x>
|
||||
<y>114</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=6, Action=SetPage8+SetBinding ,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>现场试验</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1004
QT5_Project/KD_ZM_8_XCF/UI/P02DataView.ui
Normal file
468
QT5_Project/KD_ZM_8_XCF/UI/P03SwitchAction.ui
Normal file
@ -0,0 +1,468 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P03SwitchAction</class>
|
||||
<widget class="QMainWindow" name="P03SwitchAction">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=3</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QLabel" name="P03BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../image/SwitchAction.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>295</x>
|
||||
<y>190</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>374</x>
|
||||
<y>189</y>
|
||||
<width>1141</width>
|
||||
<height>811</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="SwitchOn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>484</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchOn,Index=2,Action=CmdExecute, SelectImag=SR_001.png, groupstart=6</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="SwitchOff">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>582</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchOff,Index=3,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="CarBackward">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>487</x>
|
||||
<y>583</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CarRetreat,Index=6,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="CarForward">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>487</x>
|
||||
<y>483</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CarForward,Index=5,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="m01_SwitchStatus_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>77</x>
|
||||
<y>150</y>
|
||||
<width>310</width>
|
||||
<height>170</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchStatus, ImageValue=IM03_SwitchStatus_%d.png, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="SwitchRecover">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>681</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchOff,Index=4,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="m03_AlarmMessage_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>150</x>
|
||||
<y>114</y>
|
||||
<width>281</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmMessage,Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="TestCameraView">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>650</x>
|
||||
<y>150</y>
|
||||
<width>441</width>
|
||||
<height>241</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas1=camera0, Timeout=3000</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="quit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>856</x>
|
||||
<y>485</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=7, Action=SetPage1,SelectImag=SR_001.png, groupend=6</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="m03_CarMessage_14">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>690</x>
|
||||
<y>114</y>
|
||||
<width>291</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CarPositionMsg,Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 255, 255,0);
|
||||
color: rgb(255, 170, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="SwitchType">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>144</x>
|
||||
<y>320</y>
|
||||
<width>173</width>
|
||||
<height>69</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchType, ImageValue=SwitchType_%d.png, Timeout=10000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(30, 14, 255);</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>151</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage1,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>5</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1948
QT5_Project/KD_ZM_8_XCF/UI/P04ParamSet.ui
Normal file
656
QT5_Project/KD_ZM_8_XCF/UI/P05CameraView.ui
Normal file
@ -0,0 +1,656 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P05CameraView</class>
|
||||
<widget class="QMainWindow" name="P05CameraView">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=5</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLabel" name="P05BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../image/CameraView.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Btn_Home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>2</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=9, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas00">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>380</x>
|
||||
<y>124</y>
|
||||
<width>1165</width>
|
||||
<height>720</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas0=camera0, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="CameraChioceLabel">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>120</y>
|
||||
<width>111</width>
|
||||
<height>41</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>-1</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252); font-size: 35px;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>回路1</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<y>890</y>
|
||||
<width>1821</width>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Btn02">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>236</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=2, Action=canvas0_camera1, SelectImag=IM05_A2.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn01">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=canvas0_camera0, SelectImag=IM05_A1.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn03">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>462</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=3, Action=canvas0_camera2, SelectImag=IM05_A3.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn04">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>688</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=4, Action=canvas0_camera3, SelectImag=IM05_A4.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn05">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>914</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=5, Action=canvas0_camera4, SelectImag=IM05_A5.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn06">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1140</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=6, Action=canvas0_camera5, SelectImag=IM05_A6.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn07">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1366</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=7, Action=canvas0_camera6, SelectImag=IM05_A7.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn08">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1592</x>
|
||||
<y>5</y>
|
||||
<width>220</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=8, Action=canvas0_camera7, SelectImag=IM05_A8.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas01">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas1=camera0, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::AutoText</enum>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas02">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>238</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas2=camera1, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas03">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>464</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas3=camera2, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas04">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>690</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas4=camera3, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas05">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>916</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas5=camera4, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas06">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1142</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas6=camera5, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas07">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1368</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas7=camera6, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Canvas08">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1594</x>
|
||||
<y>23</y>
|
||||
<width>216</width>
|
||||
<height>139</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>135</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas8=camera7, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>background/IM05_002.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>Canvas08</zorder>
|
||||
<zorder>Canvas07</zorder>
|
||||
<zorder>Canvas06</zorder>
|
||||
<zorder>Canvas05</zorder>
|
||||
<zorder>Canvas04</zorder>
|
||||
<zorder>Canvas03</zorder>
|
||||
<zorder>Canvas02</zorder>
|
||||
<zorder>Canvas01</zorder>
|
||||
<zorder>Btn02</zorder>
|
||||
<zorder>Btn01</zorder>
|
||||
<zorder>Btn03</zorder>
|
||||
<zorder>Btn04</zorder>
|
||||
<zorder>Btn05</zorder>
|
||||
<zorder>Btn06</zorder>
|
||||
<zorder>Btn07</zorder>
|
||||
<zorder>Btn08</zorder>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
363
QT5_Project/KD_ZM_8_XCF/UI/P05_01_FaceCameraView.ui
Normal file
@ -0,0 +1,363 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P05CameraView</class>
|
||||
<widget class="QMainWindow" name="P05CameraView">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=5_1</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Btn_Home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>2</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="group_log">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>340</x>
|
||||
<y>670</y>
|
||||
<width>701</width>
|
||||
<height>381</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QPushButton" name="btn_save">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>211</width>
|
||||
<height>41</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(0, 0, 0);
|
||||
color: rgb(170, 0, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>日志</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextEdit" name="txt_log">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>-20</x>
|
||||
<y>60</y>
|
||||
<width>701</width>
|
||||
<height>301</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="group_video">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>450</x>
|
||||
<y>110</y>
|
||||
<width>481</width>
|
||||
<height>551</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>USB 视频流</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="video_label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>50</y>
|
||||
<width>360</width>
|
||||
<height>480</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>360</width>
|
||||
<height>480</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>未打开</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="group_cmd">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>340</x>
|
||||
<y>110</y>
|
||||
<width>109</width>
|
||||
<height>551</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>命令</string>
|
||||
</property>
|
||||
<widget class="QPushButton" name="btn_reset">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>30</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=Reset,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>复位</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_video_mode">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>59</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=VideoMode,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>视频模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_verify">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>115</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=Verify,password,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>识别</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_enroll">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>144</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=EnrollItgSingle,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ITG注册</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_users">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>173</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=Users,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>用户管理</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="FaceRecogTimeoutEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>310</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>System=FaceRecogTimeout, Action=ModifySystem, Index=13,SelectImag=P4_ParaSelect.png, password</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_video">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>210</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=ConnectCamera,password,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>打开视频</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_face_mode">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>90</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=FaceBox,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>人脸框</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="P05_01BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../image/FaceCameraView.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>P05_01BG</zorder>
|
||||
<zorder>groupBox_sys</zorder>
|
||||
<zorder>group_log</zorder>
|
||||
<zorder>group_video</zorder>
|
||||
<zorder>group_cmd</zorder>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
708
QT5_Project/KD_ZM_8_XCF/UI/P06FaultQuery.ui
Normal file
@ -0,0 +1,708 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P06FaultQuery</class>
|
||||
<widget class="QMainWindow" name="P06FaultQuery">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1076</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=6</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLabel" name="P06BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../image/FaultQuery.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>640</x>
|
||||
<y>310</y>
|
||||
<width>641</width>
|
||||
<height>581</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=2</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Btn_Pre">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>48</x>
|
||||
<y>412</y>
|
||||
<width>85</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=2,Action=CmdAlarmPrev, SelectImag=IM03_001.png, groupstart=3</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn_Next">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>267</x>
|
||||
<y>412</y>
|
||||
<width>85</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=3,Action=CmdAlarmNext, SelectImag=IM03_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="alarmTitle">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>75</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(160, 206, 226);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>..</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="alarmTime">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>35</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(160, 206, 226);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="alarmMsg">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>118</y>
|
||||
<width>491</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(255, 126, 21);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_menu_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>485</x>
|
||||
<y>412</y>
|
||||
<width>85</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=4, Action=SetPage1, SelectImag=IM03_001.png, groupend=3</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>650</x>
|
||||
<y>485</y>
|
||||
<width>671</width>
|
||||
<height>291</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;
|
||||
background-color: rgba(255, 255, 255,0);</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit_15">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>260</x>
|
||||
<y>27</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmUb, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_13">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>27</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmUa, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_14">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>82</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIa, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_16">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>137</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIc, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_18">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>260</x>
|
||||
<y>82</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIb, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_19">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>260</x>
|
||||
<y>137</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIo, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_21">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
<y>27</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmUc, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_22">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
<y>81</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIc, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_23">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
<y>137</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmRo, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>152</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage1,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>1</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>330</x>
|
||||
<y>160</y>
|
||||
<width>361</width>
|
||||
<height>91</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;
|
||||
background-color: rgba(255, 255, 255,0);</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>30</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
932
QT5_Project/KD_ZM_8_XCF/UI/P07SystemSet.ui
Normal file
@ -0,0 +1,932 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P07SystemSet</class>
|
||||
<widget class="QMainWindow" name="P07SystemSet">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=7</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>91</x>
|
||||
<y>187</y>
|
||||
<width>450</width>
|
||||
<height>874</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=14</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit_28">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>84</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchType, Action=Modify, Index=1, Alias=alias_switch_type, Caption=开关类型,Timeout=15000,SelectImag=P4_ParaSelect.png,groupstart=14</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_29">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>144</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Gas, Action=Modify, Index=2, Alias=alias_input, Caption=瓦斯触点,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_30">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>198</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>GasDelay, Action=Modify, Index=3, Format=%06.2f, Caption=瓦斯延时, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_31">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>253</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>GasConcentration, Action=Modify, Index=4, Format=%05.2f, Caption=瓦斯浓度, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_32">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>308</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Fan, Action=Modify, Index=5, Alias=alias_input, Caption=风电触点,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_36">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>364</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>FanDelay, Action=Modify, Index=6, Format=%06.2f, Caption=风电延时, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_37">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>418</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>FarAndNearMode, Action=Modify, Index=7, Alias=alias_remote, Caption=远近控模式,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_38">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>475</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>MaintenanceMode, Action=Modify, Index=8, Alias=alias_bool, Caption=维修模式,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_39">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>530</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CarAlarmDelay, Action=Modify, Index=9, Format=%05.1f, Caption=小车报警延时, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_40">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>583</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>OffVoltageDelay, Action=Modify, Index=10, Format=%06.1f, Caption=断电延时, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_41">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>640</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>TubeDelay, Action=Modify, Index=11, Format=%06.2f, Caption=真空管粘连延时, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BlankTimelineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>750</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>System=ScreenBlankingTime, Action=ModifySystem, Index=13,SelectImag=P4_ParaSelect.png, password</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_44">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>805</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>System=SystemPassWord, Action=ModifySystem, Index=14,SelectImag=P4_ParaSelect.png, password,groupend=14</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>****</string>
|
||||
</property>
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_42">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>695</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>LoadSelect, Action=Modify, Index=12, Alias=alias_select, Caption=负载选择,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>545</x>
|
||||
<y>186</y>
|
||||
<width>450</width>
|
||||
<height>874</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=15</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit_26">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>85</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>485Address, Action=Modify, Index=1, Format=%03.0f, Caption=485地址, Timeout=15000,SelectImag=P4_ParaSelect.png, groupstart=5</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_27">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>145</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>485Baud, Action=Modify, Index=2, Alias=alias_baud, Caption=485波特率,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_33">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>200</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>485Parity, Action=Modify, Index=3, Alias=alias_parity, Caption=485校验,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_34">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>255</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CANAddress, Action=Modify, Index=4, Format=%03.0f, Caption=CAN地址, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_35">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>310</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CANBaud, Action=Modify, Index=5, Alias=alias_can_baud, Caption=CAN波特率,Timeout=15000,SelectImag=P4_ParaSelect.png, groupend=5</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>80</y>
|
||||
<width>1920</width>
|
||||
<height>970</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_P00_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>547</x>
|
||||
<y>90</y>
|
||||
<width>450</width>
|
||||
<height>877</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>groupend=2,Index=3, Action=SetMain15,SelectImag=IM04_00.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>180</x>
|
||||
<y>36</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_P00_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>92</x>
|
||||
<y>90</y>
|
||||
<width>450</width>
|
||||
<height>877</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>groupstart=2,Index=2, Action=SetMain14,SelectImag=IM04_00.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>25</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>173</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage1,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>sys_P00_2</zorder>
|
||||
<zorder>sys_P00_3</zorder>
|
||||
<zorder>BindNum_Title</zorder>
|
||||
<zorder>sys_home</zorder>
|
||||
<zorder>sys_menu</zorder>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="P07BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../image/SystemSet.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>P07BG</zorder>
|
||||
<zorder>groupBox_2</zorder>
|
||||
<zorder>groupBox_sys_2</zorder>
|
||||
<zorder>indicator_Label</zorder>
|
||||
<zorder>groupBox</zorder>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
391
QT5_Project/KD_ZM_8_XCF/UI/P08FieldTestAction.ui
Normal file
@ -0,0 +1,391 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P08FieldTestAction</class>
|
||||
<widget class="QMainWindow" name="P08FieldTestAction">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=8</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QLabel" name="P08BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../image/FieldTestAction.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>300</x>
|
||||
<y>170</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>600</x>
|
||||
<y>260</y>
|
||||
<width>681</width>
|
||||
<height>511</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Test01">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>45</x>
|
||||
<y>215</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>TestShort,Index=2,Action=CmdExecute, SelectImag=SR_001.png, groupstart=4</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Test02">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>46</x>
|
||||
<y>330</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>TestIsolation,Index=3,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Reset">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>393</x>
|
||||
<y>220</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>TestRecover,Index=4,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="quit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>392</x>
|
||||
<y>330</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=5, Action=SetPage1,SelectImag=SR_001.png, groupend=4</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="SwitchType">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>422</x>
|
||||
<y>95</y>
|
||||
<width>173</width>
|
||||
<height>69</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchType, ImageValue=SwitchType_%d.png, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(30, 14, 255);</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="AlarmMessage_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>365</x>
|
||||
<y>60</y>
|
||||
<width>291</width>
|
||||
<height>41</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmMessage,Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="inputMask">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>154</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage1,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>5</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="SwitchStatus">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>678</x>
|
||||
<y>319</y>
|
||||
<width>245</width>
|
||||
<height>111</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchStatus, ImageValue=SwitchStatus_%d.png, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
339
QT5_Project/KD_ZM_8_XCF/UI/P11LightDeviceMenu.ui
Normal file
@ -0,0 +1,339 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P11DeviceMenu</class>
|
||||
<widget class="QMainWindow" name="P11DeviceMenu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=11</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QLabel" name="P01BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../Light_image/Light_DeviceMenu.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="Btns">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>234</x>
|
||||
<y>179</y>
|
||||
<width>771</width>
|
||||
<height>701</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Btn07">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>400</x>
|
||||
<y>229</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=7, Action=SetPage0,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>返回主页</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn01">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>114</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1,Action=SetPage12+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>运行数据</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn02">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>229</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=2, Action=SetPage13+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>开关操作</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn03">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>345</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=3, Action=SetPage14+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string> 保护参数设置</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn04">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>460</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=4, Action=SetPage17+SetBinding,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string> 系统参数设置</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<y>10</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>设备</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn05">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>18</x>
|
||||
<y>575</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=5, Action=SetPage16+SetBinding+CmdAlarmNext,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>故障查询</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn06">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>400</x>
|
||||
<y>114</y>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>29</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=6, Action=SetPage18+SetBinding ,SelectImag=IM01_01.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(249, 136, 50);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>现场试验</string>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>364</width>
|
||||
<height>85</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
573
QT5_Project/KD_ZM_8_XCF/UI/P12LightDataView.ui
Normal file
@ -0,0 +1,573 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P12DataView</class>
|
||||
<widget class="QMainWindow" name="P12DataView">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=12</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QLabel" name="TestCameraView">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>810</x>
|
||||
<y>120</y>
|
||||
<width>1071</width>
|
||||
<height>841</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>canvas1=camera0, Timeout=3000</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="CameralUrlLabel">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>340</x>
|
||||
<y>10</y>
|
||||
<width>391</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>cameral_url=canvas1</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="CameralUrlLabel_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>750</x>
|
||||
<y>10</y>
|
||||
<width>411</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="P02BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string>background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../Light_image/Light_DataView.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>130</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>240</y>
|
||||
<width>671</width>
|
||||
<height>781</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;
|
||||
background-color: rgba(255, 255, 255,0);</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit_15">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>304</x>
|
||||
<y>500</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Uab, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_13">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>70</x>
|
||||
<y>500</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Ia, Timeout=15000,</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_14">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>70</x>
|
||||
<y>575</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Ib, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_16">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>70</x>
|
||||
<y>650</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Ic, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_18">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>305</x>
|
||||
<y>574</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Ubc, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_19">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>305</x>
|
||||
<y>650</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Uca, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_25">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>520</x>
|
||||
<y>570</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Ro, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_27">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>531</x>
|
||||
<y>494</y>
|
||||
<width>71</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>OnCount, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="m01_SwitchStatus_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<y>120</y>
|
||||
<width>310</width>
|
||||
<height>170</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchStatus, ImageValue=IM03_SwitchStatus_%d.png, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>151</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage11,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>3</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<zorder>P02BG</zorder>
|
||||
<zorder>TestCameraView</zorder>
|
||||
<zorder>CameralUrlLabel</zorder>
|
||||
<zorder>CameralUrlLabel_2</zorder>
|
||||
<zorder>BindNum_Title</zorder>
|
||||
<zorder>groupBox</zorder>
|
||||
<zorder>indicator_Label</zorder>
|
||||
<zorder>groupBox_sys</zorder>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
345
QT5_Project/KD_ZM_8_XCF/UI/P13LightSwitchAction.ui
Normal file
@ -0,0 +1,345 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P13SwitchAction</class>
|
||||
<widget class="QMainWindow" name="P13SwitchAction">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=13</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QLabel" name="P03BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../Light_image/Ligth_SwitchAction.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>150</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage11,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>3</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>290</x>
|
||||
<y>180</y>
|
||||
<width>1300</width>
|
||||
<height>781</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="SwitchOn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>147</x>
|
||||
<y>490</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchOn,Index=2,Action=CmdExecute, SelectImag=SR_001.png, groupstart=6</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="SwitchOff">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>411</x>
|
||||
<y>493</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchOff,Index=3,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="m01_SwitchStatus_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>500</x>
|
||||
<y>170</y>
|
||||
<width>310</width>
|
||||
<height>170</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchStatus, ImageValue=IM03_SwitchStatus_%d.png, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="SwitchRecover">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>674</x>
|
||||
<y>493</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchOff,Index=4,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="m03_AlarmMessage_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>581</x>
|
||||
<y>98</y>
|
||||
<width>281</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmMessage,Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="quit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>940</x>
|
||||
<y>490</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=7, Action=SetPage11,SelectImag=SR_001.png, groupend=6</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>10</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备照明</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1734
QT5_Project/KD_ZM_8_XCF/UI/P14LightParamSet.ui
Normal file
637
QT5_Project/KD_ZM_8_XCF/UI/P16LightFaultQuery.ui
Normal file
@ -0,0 +1,637 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P16FaultQuery</class>
|
||||
<widget class="QMainWindow" name="P16FaultQuery">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=16</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLabel" name="P06BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../Light_image/Ligth_FaultQuery.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>640</x>
|
||||
<y>310</y>
|
||||
<width>641</width>
|
||||
<height>581</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=2</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Btn_Pre">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>51</x>
|
||||
<y>410</y>
|
||||
<width>85</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=2,Action=CmdAlarmPrev, SelectImag=IM03_001.png, groupstart=3</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Btn_Next">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>410</y>
|
||||
<width>85</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=3,Action=CmdAlarmNext, SelectImag=IM03_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="alarmTitle">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>75</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(160, 206, 226);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>..</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="alarmTime">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>35</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(160, 206, 226);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="alarmMsg">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>118</y>
|
||||
<width>491</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(255, 126, 21);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_menu_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>488</x>
|
||||
<y>410</y>
|
||||
<width>85</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=4, Action=SetPage11, SelectImag=IM03_001.png, groupend=3</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>650</x>
|
||||
<y>485</y>
|
||||
<width>671</width>
|
||||
<height>291</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;
|
||||
background-color: rgba(255, 255, 255,0);</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit_15">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>260</x>
|
||||
<y>27</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmUb, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_13">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>27</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmUa, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_14">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>82</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIa, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_18">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>260</x>
|
||||
<y>82</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIb, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_21">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
<y>27</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmUc, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_22">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
<y>81</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmIc, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_23">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
<y>137</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmRo, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>7</x>
|
||||
<y>149</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage11,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>1</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>320</x>
|
||||
<y>170</y>
|
||||
<width>421</width>
|
||||
<height>91</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;
|
||||
background-color: rgba(255, 255, 255,0);</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
792
QT5_Project/KD_ZM_8_XCF/UI/P17LightSystemSet.ui
Normal file
@ -0,0 +1,792 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P17SystemSet</class>
|
||||
<widget class="QMainWindow" name="P17SystemSet">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=17</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>91</x>
|
||||
<y>187</y>
|
||||
<width>450</width>
|
||||
<height>874</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=14</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit_28">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>100</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Temperature, Action=Modify, Index=1, Format=%03.0f, Caption=温度设定,Timeout=15000,SelectImag=P4_ParaSelect.png,groupstart=10</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_29">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>155</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Gas, Action=Modify, Index=2, Alias=alias_input, Caption=瓦斯触点,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_30">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>210</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>GasDelay, Action=Modify, Index=3, Format=%06.2f, Caption=瓦斯延时, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_31">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>265</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>GasConcentration, Action=Modify, Index=4, Format=%05.2f, Caption=瓦斯浓度, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_32">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>320</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Fan, Action=Modify, Index=5, Alias=alias_input, Caption=风电触点,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_36">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>375</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>FanDelay, Action=Modify, Index=6, Format=%06.2f, Caption=风电延时, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_37">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>430</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>FarAndNearMode, Action=Modify, Index=7, Alias=alias_remote, Caption=远近控模式,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_38">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>485</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>MaintenanceMode, Action=Modify, Index=8, Alias=alias_bool, Caption=维修模式,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BlankTimelineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>540</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>System=ScreenBlankingTime, Action=ModifySystem, Index=9,SelectImag=P4_ParaSelect.png, password</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_44">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>595</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>System=SystemPassWord, Action=ModifySystem, Index=10,SelectImag=P4_ParaSelect.png, password,groupend=10</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>****</string>
|
||||
</property>
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>545</x>
|
||||
<y>186</y>
|
||||
<width>450</width>
|
||||
<height>874</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=15</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit_26">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>85</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>485Address, Action=Modify, Index=1, Format=%03.0f, Caption=485地址, Timeout=15000,SelectImag=P4_ParaSelect.png, groupstart=5</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_27">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>145</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>485Baud, Action=Modify, Index=2, Alias=alias_baud, Caption=485波特率,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_33">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>200</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>485Parity, Action=Modify, Index=3, Alias=alias_parity, Caption=485校验,Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_34">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>255</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CANAddress, Action=Modify, Index=4, Format=%03.0f, Caption=CAN地址, Timeout=15000,SelectImag=P4_ParaSelect.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_35">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>310</y>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>CANBaud, Action=Modify, Index=5, Alias=alias_can_baud, Caption=CAN波特率,Timeout=15000,SelectImag=P4_ParaSelect.png, groupend=5</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(177, 229, 252);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>80</y>
|
||||
<width>1920</width>
|
||||
<height>970</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_P00_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>547</x>
|
||||
<y>90</y>
|
||||
<width>450</width>
|
||||
<height>877</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>groupend=2,Index=3, Action=SetMain15,SelectImag=IM04_00.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>180</x>
|
||||
<y>36</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_P00_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>92</x>
|
||||
<y>90</y>
|
||||
<width>450</width>
|
||||
<height>877</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>groupstart=2,Index=2, Action=SetMain14,SelectImag=IM04_00.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>876</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>24</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>173</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage11,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>sys_P00_2</zorder>
|
||||
<zorder>sys_P00_3</zorder>
|
||||
<zorder>BindNum_Title</zorder>
|
||||
<zorder>sys_home</zorder>
|
||||
<zorder>sys_menu</zorder>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="P07BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../Light_image/Light_SystemSet.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>P07BG</zorder>
|
||||
<zorder>groupBox</zorder>
|
||||
<zorder>groupBox_2</zorder>
|
||||
<zorder>groupBox_sys_2</zorder>
|
||||
<zorder>indicator_Label</zorder>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
345
QT5_Project/KD_ZM_8_XCF/UI/P18LightFieldTestAction.ui
Normal file
@ -0,0 +1,345 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>P18FieldTestAction</class>
|
||||
<widget class="QMainWindow" name="P18FieldTestAction">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Page=18</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QLabel" name="P08BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>../Light_image/Light_FieldTestAction.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="BindNum_Title">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>290</x>
|
||||
<y>174</y>
|
||||
<width>331</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>20</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>当前设备</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>600</x>
|
||||
<y>280</y>
|
||||
<width>691</width>
|
||||
<height>511</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="Test01">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>53</x>
|
||||
<y>243</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>TestShort,Index=2,Action=CmdExecute, SelectImag=SR_001.png, groupstart=4</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Test02">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>53</x>
|
||||
<y>357</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>TestIsolation,Index=3,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="Reset">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>400</x>
|
||||
<y>248</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>TestRecover,Index=4,Action=CmdExecute, SelectImag=SR_001.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>72</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="m03_AlarmMessage_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>365</x>
|
||||
<y>135</y>
|
||||
<width>291</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>16</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>AlarmMessage,Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(255, 238, 254,0);
|
||||
color: rgb(207, 0, 13);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="m01_SwitchStatus_0">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>79</x>
|
||||
<y>93</y>
|
||||
<width>245</width>
|
||||
<height>111</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>SwitchStatus, ImageValue=SwitchStatus_%d.png, Timeout=15000</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="quit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>400</x>
|
||||
<y>357</y>
|
||||
<width>246</width>
|
||||
<height>84</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=5, Action=SetPage11,SelectImag=SR_001.png, groupend=4</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="indicator_Label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<y>412</y>
|
||||
<width>88</width>
|
||||
<height>636</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>ImageValue=IMxx_A_%d.png</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_sys">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>100</y>
|
||||
<width>85</width>
|
||||
<height>960</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>main=1</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="sys_menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>153</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=1, Action=SetPage11,SelectImag=IMxx_00E.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sys_home">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>4</y>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>Index=0, Action=SetPage0,SelectImag=IMxx_00F.png</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>144</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1911
QT5_Project/KD_ZM_8_XCF/UIFrameWork.py
Normal file
5
QT5_Project/KD_ZM_8_XCF/__init__.py
Normal file
@ -0,0 +1,5 @@
|
||||
import sys
|
||||
sys_path = sys.path[0].replace("\\", "/")
|
||||
sys_path_linux = sys_path + "/../.."
|
||||
if sys_path_linux not in sys.path :
|
||||
sys.path.append(sys_path_linux)
|
||||
BIN
QT5_Project/KD_ZM_8_XCF/background/IM00_01B.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM00_SwitchStatus_0.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM00_SwitchStatus_1.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM00_SwitchType_0.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM00_SwitchType_1.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM01_01.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM01_0122.png
Normal file
|
After Width: | Height: | Size: 593 B |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM02_SwitchStatus_0.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM02_SwitchStatus_1.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM02_SwitchType_0.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM02_SwitchType_1.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM03_001.png
Normal file
|
After Width: | Height: | Size: 661 B |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM03_SwitchStatus_0.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM03_SwitchStatus_1.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM04_00.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_001.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_002.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A2.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A3.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A4.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A5.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A6.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A7.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IM05_A8.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_00D.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_00E.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_00F.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_0.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_1.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_2.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_3.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_4.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_5.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_6.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/IMxx_A_7.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/P4_ParaSelect.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/P4_ToggleSelect.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/SR_001.png
Normal file
|
After Width: | Height: | Size: 451 B |
BIN
QT5_Project/KD_ZM_8_XCF/background/SwitchStatus_0.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/SwitchStatus_1.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/SwitchType_0.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/background/SwitchType_1.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/CameraView.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/DataView.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/DeviceList.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/DeviceMenu.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/FaceCameraView.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/FaultQuery.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/FieldTestAction.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/ParamSet.png
Normal file
|
After Width: | Height: | Size: 368 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/SwitchAction.png
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
QT5_Project/KD_ZM_8_XCF/image/SystemSet.png
Normal file
|
After Width: | Height: | Size: 219 KiB |
@ -1,281 +1,31 @@
|
||||
# import sys
|
||||
# import cv2
|
||||
# import os
|
||||
# import time
|
||||
# from PyQt5.QtCore import QThread, pyqtSignal, QObject
|
||||
# import face_recognition
|
||||
|
||||
# current_dir = os.path.dirname(__file__)
|
||||
# share_code_dir = os.path.abspath(os.path.join(current_dir, '..', '..'))
|
||||
# sys.path.append(share_code_dir)
|
||||
|
||||
# from print_color import *
|
||||
|
||||
# DEFAULT_VIDEO_SLEEP_MS = 20
|
||||
|
||||
# # 图像处理线程
|
||||
# class ImageProcessingThread(QThread):
|
||||
# processed_image_signal = pyqtSignal(object)
|
||||
|
||||
# def __init__(self):
|
||||
# super().__init__()
|
||||
|
||||
# def run(self):
|
||||
# while True:
|
||||
# # 在这里添加图像处理代码
|
||||
# # 这里暂时只是将图像传递给下一个线程
|
||||
# time.sleep(0.01)
|
||||
# self.processed_image_signal.emit(None)
|
||||
|
||||
# # 摄像头采集线程
|
||||
# class CameraThread(QThread):
|
||||
# image_signal = pyqtSignal(object)
|
||||
|
||||
# def __init__(self, camera_url, circuit_id: int = 0):
|
||||
# super().__init__()
|
||||
|
||||
# self.camera_url = camera_url # 摄像头url地址, 整数 或者 字符串
|
||||
# self.face_detection: bool = False
|
||||
|
||||
# if isinstance(camera_url, int):
|
||||
# self.camera_url_str = str(camera_url)
|
||||
# else:
|
||||
# self.camera_url_str = camera_url
|
||||
|
||||
# self.cap: cv2.VideoCapture = None
|
||||
# self.running: bool = True
|
||||
|
||||
# self.fps = 0
|
||||
|
||||
# self.cycle_limit = DEFAULT_VIDEO_SLEEP_MS
|
||||
# self.cycle_ms = 0
|
||||
# self.circuit_id = circuit_id # 摄像头对应的回路, 组合开关每一个回路都有对应的摄像头
|
||||
# self.is_signal_connect = False
|
||||
# self.is_emit = False
|
||||
|
||||
# self.set_video_cycle_ms(2000)
|
||||
|
||||
# def signal_connect(self, slot_func):
|
||||
# self.image_signal.connect(slot_func)
|
||||
# self.is_signal_connect = True
|
||||
|
||||
# def signal_disconnect(self):
|
||||
# # 判断信号是否已连接
|
||||
# if self.is_signal_connect:
|
||||
# self.image_signal.disconnect()
|
||||
# self.is_signal_connect = False
|
||||
|
||||
# def set_video_cycle_ms(self, cycle_ms: int = 10):
|
||||
# if self.cycle_limit != cycle_ms:
|
||||
# if cycle_ms <= DEFAULT_VIDEO_SLEEP_MS:
|
||||
# self.cycle_limit = DEFAULT_VIDEO_SLEEP_MS
|
||||
# else:
|
||||
# self.cycle_limit = cycle_ms
|
||||
|
||||
# # 新建函数,改变函数延时方法
|
||||
# def change_camera_url(self, camera_url: str):
|
||||
# if self.circuit_id == camera_url:
|
||||
# self.set_video_cycle_ms(DEFAULT_VIDEO_SLEEP_MS)
|
||||
# else:
|
||||
# self.set_video_cycle_ms(1000)
|
||||
|
||||
# def close(self):
|
||||
# if self.cap == None: # 初始化一直未完成
|
||||
# self.terminate()
|
||||
# self.running = False
|
||||
|
||||
# def run(self):
|
||||
# process_count = 0
|
||||
# fps_time = 0
|
||||
|
||||
# while self.running == True:
|
||||
# inform_msg = "cameral init start, url = " + self.camera_url_str
|
||||
# print_inform_msg(inform_msg)
|
||||
|
||||
# try:
|
||||
# if isinstance(self.camera_url, int):
|
||||
# # 在 Windows 平台下,使用默认的 cv2.VideoCapture 接口
|
||||
# self.cap = cv2.VideoCapture(self.camera_url, cv2.CAP_DSHOW)
|
||||
# else:
|
||||
# # 在 Linux 平台下,使用默认的 cv2.VideoCapture 接口
|
||||
# self.cap = cv2.VideoCapture(self.camera_url)
|
||||
|
||||
# if self.cap != None:
|
||||
# inform_msg = "cameral Init Success, url = " + self.camera_url_str
|
||||
# self.is_emit = True
|
||||
# print_inform_msg(inform_msg)
|
||||
# else:
|
||||
# inform_msg = "cameral connection timeout, url = " + self.camera_url_str
|
||||
# print_inform_msg(inform_msg)
|
||||
|
||||
# except Exception as e:
|
||||
# self.cap = None
|
||||
# inform_msg = "cameral camera Init Fail, url = " + self.camera_url_str
|
||||
# print_error_msg(inform_msg)
|
||||
|
||||
# base_time = time.time()
|
||||
|
||||
# while self.running and self.cap != None:
|
||||
# # 延时20ms
|
||||
# time.sleep(DEFAULT_VIDEO_SLEEP_MS / 1000)
|
||||
# if self.cycle_ms + DEFAULT_VIDEO_SLEEP_MS < self.cycle_limit:
|
||||
# self.cycle_ms += DEFAULT_VIDEO_SLEEP_MS
|
||||
# self.cap.grab() # 抛弃多余的帧,保持最新帧
|
||||
# continue
|
||||
# else:
|
||||
# self.cycle_ms = 0
|
||||
|
||||
# try:
|
||||
# ret, frame = self.cap.read()
|
||||
# cur_time = time.time()
|
||||
|
||||
# execution_time = cur_time - base_time
|
||||
# base_time = cur_time
|
||||
# process_count += 1
|
||||
|
||||
# fps_time += execution_time
|
||||
|
||||
# if fps_time >= 1:
|
||||
# self.fps = process_count
|
||||
# process_count = 0
|
||||
# fps_time = 0
|
||||
|
||||
# if execution_time < 5:
|
||||
# image_object: QObject = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
|
||||
# self.image_signal.emit(image_object)
|
||||
# else: # 时间差大于5秒, 表示网络可能中断过, 退出并重新连接
|
||||
# err_message = "cameral read timeout, url = " + self.camera_url_str
|
||||
# print_error_msg(err_message)
|
||||
# break
|
||||
# except Exception as e:
|
||||
# err_message = "cameral read timeout, url = " + self.camera_url_str
|
||||
# self.is_emit = False
|
||||
# print_error_msg(err_message)
|
||||
# if self.running == True:
|
||||
# time.sleep(2)
|
||||
# break
|
||||
|
||||
# print_inform_msg("cameral connection End")
|
||||
# time.sleep(0.01)
|
||||
|
||||
# if self.cap != None:
|
||||
# self.cap.release()
|
||||
# self.cap = None
|
||||
# - * - coding:utf - 8 - * -
|
||||
import sys
|
||||
import cv2
|
||||
import os
|
||||
import time
|
||||
import subprocess
|
||||
import face_recognition
|
||||
import numpy as np
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
from PyQt5.QtCore import QThread, pyqtSignal, QObject
|
||||
from print_color import *
|
||||
import face_recognition
|
||||
|
||||
current_dir = os.path.dirname(__file__)
|
||||
share_code_dir = os.path.abspath(os.path.join(current_dir, '..', '..'))
|
||||
sys.path.append(share_code_dir)
|
||||
|
||||
from print_color import *
|
||||
|
||||
DEFAULT_VIDEO_SLEEP_MS = 20
|
||||
|
||||
# 定义路径常量
|
||||
npy_file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'face_data/face_data.npy'))
|
||||
image_folder_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'face_data'))
|
||||
font_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'font/hanzi.ttc'))
|
||||
def load_face_data():
|
||||
face_data = {}
|
||||
try:
|
||||
face_data = np.load(npy_file_path, allow_pickle=True).item()
|
||||
print_debug_msg(f"Loaded {len(face_data)} face encodings from {npy_file_path}.")
|
||||
except Exception as e:
|
||||
print_error_msg(f"Error loading face encodings: {e}")
|
||||
|
||||
current_images = [f for f in os.listdir(image_folder_path) if f.endswith('.jpg')]
|
||||
current_image_set = set(os.path.splitext(f)[0] for f in current_images)
|
||||
known_image_set = set(face_data.keys())
|
||||
|
||||
added_images = current_image_set - known_image_set
|
||||
removed_images = known_image_set - current_image_set
|
||||
|
||||
for image_name in added_images:
|
||||
image_path = os.path.join(image_folder_path, f"{image_name}.jpg")
|
||||
try:
|
||||
image = face_recognition.load_image_file(image_path)
|
||||
face_encodings = face_recognition.face_encodings(image)
|
||||
if face_encodings:
|
||||
face_data[image_name] = face_encodings[0].tolist()
|
||||
print_debug_msg(f"Added encoding for {image_name}.")
|
||||
else:
|
||||
print_warning_msg(f"[WARNING] No face detected in {image_name}.jpg.")
|
||||
except Exception as e:
|
||||
print_error_msg(f"[ERROR] Error processing {image_name}.jpg: {e}")
|
||||
|
||||
for removed_image in removed_images:
|
||||
del face_data[removed_image]
|
||||
print_debug_msg(f"Removed encoding for {removed_image}.")
|
||||
|
||||
np.save(npy_file_path, face_data)
|
||||
print_debug_msg(f"Updated face data saved with {len(face_data)} entries.")
|
||||
return face_data
|
||||
|
||||
# 图像处理线程
|
||||
class ImageProcessingThread(QThread):
|
||||
processed_image_signal = pyqtSignal(object)
|
||||
|
||||
def __init__(self, frame=None):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.frame = frame # 添加 frame 参数
|
||||
self.face_encodings = []
|
||||
self.face_names = []
|
||||
self.face_locations = []
|
||||
self.face_data = load_face_data()
|
||||
self.total_image_name = list(self.face_data.keys())
|
||||
self.total_face_encoding = [np.array(self.face_data[name]) for name in self.total_image_name]
|
||||
|
||||
def process_frame(self, frame):
|
||||
"""实时处理帧,匹配已知人脸"""
|
||||
self.face_locations = face_recognition.face_locations(frame)
|
||||
face_encodings = face_recognition.face_encodings(frame, self.face_locations)
|
||||
names = []
|
||||
for face_encoding in face_encodings:
|
||||
name = "Unknown"
|
||||
face_distances = face_recognition.face_distance(self.total_face_encoding, face_encoding)
|
||||
|
||||
if face_distances.size > 0:
|
||||
min_distance = np.min(face_distances)
|
||||
best_match_index = np.argmin(face_distances)
|
||||
|
||||
if min_distance < self.dynamic_tolerance(): # 使用动态容忍度
|
||||
name = self.total_image_name[best_match_index]
|
||||
|
||||
names.append(name)
|
||||
|
||||
self.face_names = names
|
||||
return frame
|
||||
|
||||
def dynamic_tolerance(self):
|
||||
# 动态调整容忍度,可以基于一些规则来调整,如帧内错误率、识别准确率等
|
||||
error_rate = self.calculate_error_rate()
|
||||
if error_rate > 0.1:
|
||||
return 0.5 # 高容忍度以减少错误
|
||||
else:
|
||||
return 0.4 # 适中容忍度
|
||||
|
||||
def calculate_error_rate(self):
|
||||
# 计算识别错误率,作为动态调整容忍度的依据
|
||||
total_faces = len(self.total_face_encoding)
|
||||
unmatched_faces = sum(1 for name in self.face_names if name == "Unknown")
|
||||
return unmatched_faces / total_faces if total_faces > 0 else 0
|
||||
|
||||
def set_frame(self, frame):
|
||||
self.frame = frame
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
if self.frame is not None:
|
||||
self.process_frame(self.frame)
|
||||
self.processed_image_signal.emit(self.frame)
|
||||
time.sleep(0.01) # 控制帧率
|
||||
|
||||
# 在这里添加图像处理代码
|
||||
# 这里暂时只是将图像传递给下一个线程
|
||||
time.sleep(0.01)
|
||||
self.processed_image_signal.emit(None)
|
||||
|
||||
# 摄像头采集线程
|
||||
class CameraThread(QThread):
|
||||
@ -283,8 +33,9 @@ class CameraThread(QThread):
|
||||
|
||||
def __init__(self, camera_url, circuit_id: int = 0):
|
||||
super().__init__()
|
||||
self.camera_url = camera_url
|
||||
self.face_detection: bool = True
|
||||
|
||||
self.camera_url = camera_url # 摄像头url地址, 整数 或者 字符串
|
||||
self.face_detection: bool = False
|
||||
|
||||
if isinstance(camera_url, int):
|
||||
self.camera_url_str = str(camera_url)
|
||||
@ -295,12 +46,10 @@ class CameraThread(QThread):
|
||||
self.running: bool = True
|
||||
|
||||
self.fps = 0
|
||||
self.frame_count = 0
|
||||
self.fps_time = 0
|
||||
|
||||
self.cycle_limit = DEFAULT_VIDEO_SLEEP_MS
|
||||
self.cycle_ms = 0
|
||||
self.circuit_id = circuit_id
|
||||
self.circuit_id = circuit_id # 摄像头对应的回路, 组合开关每一个回路都有对应的摄像头
|
||||
self.is_signal_connect = False
|
||||
self.is_emit = False
|
||||
|
||||
@ -311,6 +60,7 @@ class CameraThread(QThread):
|
||||
self.is_signal_connect = True
|
||||
|
||||
def signal_disconnect(self):
|
||||
# 判断信号是否已连接
|
||||
if self.is_signal_connect:
|
||||
self.image_signal.disconnect()
|
||||
self.is_signal_connect = False
|
||||
@ -322,6 +72,7 @@ class CameraThread(QThread):
|
||||
else:
|
||||
self.cycle_limit = cycle_ms
|
||||
|
||||
# 新建函数,改变函数延时方法
|
||||
def change_camera_url(self, camera_url: str):
|
||||
if self.circuit_id == camera_url:
|
||||
self.set_video_cycle_ms(DEFAULT_VIDEO_SLEEP_MS)
|
||||
@ -329,115 +80,364 @@ class CameraThread(QThread):
|
||||
self.set_video_cycle_ms(1000)
|
||||
|
||||
def close(self):
|
||||
if self.cap is None:
|
||||
if self.cap == None: # 初始化一直未完成
|
||||
self.terminate()
|
||||
self.running = False
|
||||
|
||||
def run(self):
|
||||
process_count = 0
|
||||
fps_time = 0
|
||||
face_thread = ImageProcessingThread()
|
||||
face_thread.start()
|
||||
|
||||
self.match_count = 0 # 初始化匹配帧数计数器
|
||||
|
||||
while self.running:
|
||||
inform_msg = "Camera init start, URL = " + self.camera_url_str
|
||||
while self.running == True:
|
||||
inform_msg = "cameral init start, url = " + self.camera_url_str
|
||||
print_inform_msg(inform_msg)
|
||||
|
||||
try:
|
||||
self.cap = cv2.VideoCapture(self.camera_url) # 强制使用 BGR 格式
|
||||
if self.cap.isOpened():
|
||||
inform_msg = "Camera Init Success, URL = " + self.camera_url_str
|
||||
if isinstance(self.camera_url, int):
|
||||
# 在 Windows 平台下,使用默认的 cv2.VideoCapture 接口
|
||||
self.cap = cv2.VideoCapture(self.camera_url, cv2.CAP_DSHOW)
|
||||
else:
|
||||
# 在 Linux 平台下,使用默认的 cv2.VideoCapture 接口
|
||||
self.cap = cv2.VideoCapture(self.camera_url)
|
||||
|
||||
if self.cap != None:
|
||||
inform_msg = "cameral Init Success, url = " + self.camera_url_str
|
||||
self.is_emit = True
|
||||
print_inform_msg(inform_msg)
|
||||
else:
|
||||
inform_msg = "Camera connection timeout, URL = " + self.camera_url_str
|
||||
print_error_msg(inform_msg)
|
||||
inform_msg = "cameral connection timeout, url = " + self.camera_url_str
|
||||
print_inform_msg(inform_msg)
|
||||
|
||||
except Exception as e:
|
||||
self.cap = None
|
||||
inform_msg = "Camera Init Fail, URL = " + self.camera_url_str
|
||||
inform_msg = "cameral camera Init Fail, url = " + self.camera_url_str
|
||||
print_error_msg(inform_msg)
|
||||
|
||||
base_time = time.time()
|
||||
|
||||
while self.running and self.cap:
|
||||
while self.running and self.cap != None:
|
||||
# 延时20ms
|
||||
time.sleep(DEFAULT_VIDEO_SLEEP_MS / 1000)
|
||||
|
||||
if self.cycle_ms + DEFAULT_VIDEO_SLEEP_MS < self.cycle_limit:
|
||||
self.cycle_ms += DEFAULT_VIDEO_SLEEP_MS
|
||||
self.cap.grab()
|
||||
self.cap.grab() # 抛弃多余的帧,保持最新帧
|
||||
continue
|
||||
else:
|
||||
self.cycle_ms = 0
|
||||
|
||||
try:
|
||||
ret, frame = self.cap.read()
|
||||
if not ret:
|
||||
break
|
||||
|
||||
face_thread.set_frame(frame)
|
||||
|
||||
cur_time = time.time()
|
||||
|
||||
execution_time = cur_time - base_time
|
||||
base_time = cur_time
|
||||
process_count += 1
|
||||
|
||||
fps_time += execution_time
|
||||
if fps_time >= 1: # 每隔1秒重新计算 FPS
|
||||
|
||||
if fps_time >= 1:
|
||||
self.fps = process_count
|
||||
process_count = 0
|
||||
fps_time = 0
|
||||
|
||||
if execution_time < 5:
|
||||
frame: QObject = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
|
||||
for (top, right, bottom, left), name in zip(face_thread.face_locations, face_thread.face_names):
|
||||
if name != "Unknown": # 只绘制已匹配的结果
|
||||
self.match_count += 1 # 计数成功匹配的帧
|
||||
# cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2)
|
||||
# cv2.putText(frame, name, (left + 6, bottom - 6), cv2.FONT_HERSHEY_DUPLEX, 1.0, (255, 255, 255), 1)
|
||||
|
||||
# 将OpenCV图像转换为PIL图像格式(注意要转换色彩空间,OpenCV是BGR,PIL是RGB)
|
||||
pil_image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
||||
draw = ImageDraw.Draw(pil_image)
|
||||
# 这里选择合适的中文字体文件路径,比如系统自带的宋体(不同系统路径可能有差异),并设置字体大小
|
||||
font = ImageFont.truetype(font_path, 15)
|
||||
# 在指定位置绘制中文
|
||||
draw.text((left + 12, bottom + 12), name, font=font, fill=(255, 255, 255))
|
||||
# 再将PIL图像转换回OpenCV图像格式
|
||||
frame = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||
cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2)
|
||||
else:
|
||||
name = "未在人脸库中,无操作权限"
|
||||
pil_image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
||||
draw = ImageDraw.Draw(pil_image)
|
||||
#设置字体大小
|
||||
font = ImageFont.truetype(font_path, 15)
|
||||
# 在指定位置绘制中文
|
||||
draw.text((left + 12, bottom + 12), name, font=font, fill=(255, 255, 255))
|
||||
# 再将PIL图像转换回OpenCV图像格式
|
||||
frame = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||
cv2.rectangle(frame, (left, top), (right, bottom), (255, 0, 0), 2)
|
||||
self.image_signal.emit(frame)
|
||||
else:
|
||||
err_message = "Camera read timeout, URL = " + self.camera_url_str
|
||||
image_object: QObject = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
|
||||
self.image_signal.emit(image_object)
|
||||
else: # 时间差大于5秒, 表示网络可能中断过, 退出并重新连接
|
||||
err_message = "cameral read timeout, url = " + self.camera_url_str
|
||||
print_error_msg(err_message)
|
||||
break
|
||||
|
||||
except Exception as e:
|
||||
err_message = "Camera read exception, URL = " + self.camera_url_str
|
||||
err_message = "cameral read timeout, url = " + self.camera_url_str
|
||||
self.is_emit = False
|
||||
print_error_msg(err_message)
|
||||
if self.running:
|
||||
if self.running == True:
|
||||
time.sleep(2)
|
||||
break
|
||||
|
||||
if self.cap:
|
||||
self.cap.release()
|
||||
self.cap = None
|
||||
|
||||
print_inform_msg("Camera connection ended")
|
||||
print_inform_msg("cameral connection End")
|
||||
time.sleep(0.01)
|
||||
|
||||
if self.cap != None:
|
||||
self.cap.release()
|
||||
self.cap = None
|
||||
# - * - coding:utf - 8 - * -
|
||||
# import sys
|
||||
# import cv2
|
||||
# import os
|
||||
# import time
|
||||
# import subprocess
|
||||
# import face_recognition
|
||||
# import numpy as np
|
||||
# from PIL import Image, ImageDraw, ImageFont
|
||||
# from PyQt5.QtCore import QThread, pyqtSignal, QObject
|
||||
# from print_color import *
|
||||
# current_dir = os.path.dirname(__file__)
|
||||
# share_code_dir = os.path.abspath(os.path.join(current_dir, '..', '..'))
|
||||
# sys.path.append(share_code_dir)
|
||||
|
||||
# DEFAULT_VIDEO_SLEEP_MS = 20
|
||||
|
||||
# # 定义路径常量
|
||||
# npy_file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'face_data/face_data.npy'))
|
||||
# image_folder_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'face_data'))
|
||||
# font_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'font/hanzi.ttc'))
|
||||
# def load_face_data():
|
||||
# face_data = {}
|
||||
# try:
|
||||
# face_data = np.load(npy_file_path, allow_pickle=True).item()
|
||||
# print_debug_msg(f"Loaded {len(face_data)} face encodings from {npy_file_path}.")
|
||||
# except Exception as e:
|
||||
# print_error_msg(f"Error loading face encodings: {e}")
|
||||
|
||||
# current_images = [f for f in os.listdir(image_folder_path) if f.endswith('.jpg')]
|
||||
# current_image_set = set(os.path.splitext(f)[0] for f in current_images)
|
||||
# known_image_set = set(face_data.keys())
|
||||
|
||||
# added_images = current_image_set - known_image_set
|
||||
# removed_images = known_image_set - current_image_set
|
||||
|
||||
# for image_name in added_images:
|
||||
# image_path = os.path.join(image_folder_path, f"{image_name}.jpg")
|
||||
# try:
|
||||
# image = face_recognition.load_image_file(image_path)
|
||||
# face_encodings = face_recognition.face_encodings(image)
|
||||
# if face_encodings:
|
||||
# face_data[image_name] = face_encodings[0].tolist()
|
||||
# print_debug_msg(f"Added encoding for {image_name}.")
|
||||
# else:
|
||||
# print_warning_msg(f"[WARNING] No face detected in {image_name}.jpg.")
|
||||
# except Exception as e:
|
||||
# print_error_msg(f"[ERROR] Error processing {image_name}.jpg: {e}")
|
||||
|
||||
# for removed_image in removed_images:
|
||||
# del face_data[removed_image]
|
||||
# print_debug_msg(f"Removed encoding for {removed_image}.")
|
||||
|
||||
# np.save(npy_file_path, face_data)
|
||||
# print_debug_msg(f"Updated face data saved with {len(face_data)} entries.")
|
||||
# return face_data
|
||||
|
||||
# class ImageProcessingThread(QThread):
|
||||
# processed_image_signal = pyqtSignal(object)
|
||||
|
||||
# def __init__(self, frame=None):
|
||||
# super().__init__()
|
||||
# self.frame = frame # 添加 frame 参数
|
||||
# self.face_encodings = []
|
||||
# self.face_names = []
|
||||
# self.face_locations = []
|
||||
# self.face_data = load_face_data()
|
||||
# self.total_image_name = list(self.face_data.keys())
|
||||
# self.total_face_encoding = [np.array(self.face_data[name]) for name in self.total_image_name]
|
||||
|
||||
# def process_frame(self, frame):
|
||||
# """实时处理帧,匹配已知人脸"""
|
||||
# self.face_locations = face_recognition.face_locations(frame)
|
||||
# face_encodings = face_recognition.face_encodings(frame, self.face_locations)
|
||||
# names = []
|
||||
# for face_encoding in face_encodings:
|
||||
# name = "Unknown"
|
||||
# face_distances = face_recognition.face_distance(self.total_face_encoding, face_encoding)
|
||||
|
||||
# if face_distances.size > 0:
|
||||
# min_distance = np.min(face_distances)
|
||||
# best_match_index = np.argmin(face_distances)
|
||||
|
||||
# if min_distance < self.dynamic_tolerance(): # 使用动态容忍度
|
||||
# name = self.total_image_name[best_match_index]
|
||||
|
||||
# names.append(name)
|
||||
|
||||
# self.face_names = names
|
||||
# return frame
|
||||
|
||||
# def dynamic_tolerance(self):
|
||||
# # 动态调整容忍度,可以基于一些规则来调整,如帧内错误率、识别准确率等
|
||||
# error_rate = self.calculate_error_rate()
|
||||
# if error_rate > 0.1:
|
||||
# return 0.5 # 高容忍度以减少错误
|
||||
# else:
|
||||
# return 0.4 # 适中容忍度
|
||||
|
||||
# def calculate_error_rate(self):
|
||||
# # 计算识别错误率,作为动态调整容忍度的依据
|
||||
# total_faces = len(self.total_face_encoding)
|
||||
# unmatched_faces = sum(1 for name in self.face_names if name == "Unknown")
|
||||
# return unmatched_faces / total_faces if total_faces > 0 else 0
|
||||
|
||||
# def set_frame(self, frame):
|
||||
# self.frame = frame
|
||||
|
||||
# def run(self):
|
||||
# while True:
|
||||
# if self.frame is not None:
|
||||
# self.process_frame(self.frame)
|
||||
# self.processed_image_signal.emit(self.frame)
|
||||
# time.sleep(0.01) # 控制帧率
|
||||
|
||||
|
||||
# # 摄像头采集线程
|
||||
# class CameraThread(QThread):
|
||||
# image_signal = pyqtSignal(object)
|
||||
|
||||
# def __init__(self, camera_url, circuit_id: int = 0):
|
||||
# super().__init__()
|
||||
# self.camera_url = camera_url
|
||||
# self.face_detection: bool = True
|
||||
|
||||
# if isinstance(camera_url, int):
|
||||
# self.camera_url_str = str(camera_url)
|
||||
# else:
|
||||
# self.camera_url_str = camera_url
|
||||
|
||||
# self.cap: cv2.VideoCapture = None
|
||||
# self.running: bool = True
|
||||
|
||||
# self.fps = 0
|
||||
# self.frame_count = 0
|
||||
# self.fps_time = 0
|
||||
|
||||
# self.cycle_limit = DEFAULT_VIDEO_SLEEP_MS
|
||||
# self.cycle_ms = 0
|
||||
# self.circuit_id = circuit_id
|
||||
# self.is_signal_connect = False
|
||||
# self.is_emit = False
|
||||
|
||||
# self.set_video_cycle_ms(2000)
|
||||
|
||||
# def signal_connect(self, slot_func):
|
||||
# self.image_signal.connect(slot_func)
|
||||
# self.is_signal_connect = True
|
||||
|
||||
# def signal_disconnect(self):
|
||||
# if self.is_signal_connect:
|
||||
# self.image_signal.disconnect()
|
||||
# self.is_signal_connect = False
|
||||
|
||||
# def set_video_cycle_ms(self, cycle_ms: int = 10):
|
||||
# if self.cycle_limit != cycle_ms:
|
||||
# if cycle_ms <= DEFAULT_VIDEO_SLEEP_MS:
|
||||
# self.cycle_limit = DEFAULT_VIDEO_SLEEP_MS
|
||||
# else:
|
||||
# self.cycle_limit = cycle_ms
|
||||
|
||||
# def change_camera_url(self, camera_url: str):
|
||||
# if self.circuit_id == camera_url:
|
||||
# self.set_video_cycle_ms(DEFAULT_VIDEO_SLEEP_MS)
|
||||
# else:
|
||||
# self.set_video_cycle_ms(1000)
|
||||
|
||||
# def close(self):
|
||||
# if self.cap is None:
|
||||
# self.terminate()
|
||||
# self.running = False
|
||||
|
||||
# def run(self):
|
||||
# process_count = 0
|
||||
# fps_time = 0
|
||||
# face_thread = ImageProcessingThread()
|
||||
# face_thread.start()
|
||||
|
||||
# self.match_count = 0 # 初始化匹配帧数计数器
|
||||
|
||||
# while self.running:
|
||||
# inform_msg = "Camera init start, URL = " + self.camera_url_str
|
||||
# print_inform_msg(inform_msg)
|
||||
|
||||
# try:
|
||||
# self.cap = cv2.VideoCapture(self.camera_url) # 强制使用 BGR 格式
|
||||
# if self.cap.isOpened():
|
||||
# inform_msg = "Camera Init Success, URL = " + self.camera_url_str
|
||||
# self.is_emit = True
|
||||
# print_inform_msg(inform_msg)
|
||||
# else:
|
||||
# inform_msg = "Camera connection timeout, URL = " + self.camera_url_str
|
||||
# print_error_msg(inform_msg)
|
||||
|
||||
# except Exception as e:
|
||||
# self.cap = None
|
||||
# inform_msg = "Camera Init Fail, URL = " + self.camera_url_str
|
||||
# print_error_msg(inform_msg)
|
||||
|
||||
# base_time = time.time()
|
||||
|
||||
# while self.running and self.cap:
|
||||
# time.sleep(DEFAULT_VIDEO_SLEEP_MS / 1000)
|
||||
|
||||
# if self.cycle_ms + DEFAULT_VIDEO_SLEEP_MS < self.cycle_limit:
|
||||
# self.cycle_ms += DEFAULT_VIDEO_SLEEP_MS
|
||||
# self.cap.grab()
|
||||
# continue
|
||||
# else:
|
||||
# self.cycle_ms = 0
|
||||
|
||||
# try:
|
||||
# ret, frame = self.cap.read()
|
||||
# if not ret:
|
||||
# break
|
||||
|
||||
# face_thread.set_frame(frame)
|
||||
|
||||
# cur_time = time.time()
|
||||
# execution_time = cur_time - base_time
|
||||
# base_time = cur_time
|
||||
# process_count += 1
|
||||
|
||||
# fps_time += execution_time
|
||||
# if fps_time >= 1: # 每隔1秒重新计算 FPS
|
||||
# self.fps = process_count
|
||||
# process_count = 0
|
||||
# fps_time = 0
|
||||
|
||||
# if execution_time < 5:
|
||||
# frame: QObject = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
|
||||
# for (top, right, bottom, left), name in zip(face_thread.face_locations, face_thread.face_names):
|
||||
# if name != "Unknown": # 只绘制已匹配的结果
|
||||
# self.match_count += 1 # 计数成功匹配的帧
|
||||
# # cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2)
|
||||
# # cv2.putText(frame, name, (left + 6, bottom - 6), cv2.FONT_HERSHEY_DUPLEX, 1.0, (255, 255, 255), 1)
|
||||
|
||||
# # 将OpenCV图像转换为PIL图像格式(注意要转换色彩空间,OpenCV是BGR,PIL是RGB)
|
||||
# pil_image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
||||
# draw = ImageDraw.Draw(pil_image)
|
||||
# # 这里选择合适的中文字体文件路径,比如系统自带的宋体(不同系统路径可能有差异),并设置字体大小
|
||||
# font = ImageFont.truetype(font_path, 15)
|
||||
# # 在指定位置绘制中文
|
||||
# draw.text((left + 12, bottom + 12), name, font=font, fill=(255, 255, 255))
|
||||
# # 再将PIL图像转换回OpenCV图像格式
|
||||
# frame = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||
# cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2)
|
||||
# else:
|
||||
# name = "未在人脸库中,无操作权限"
|
||||
# pil_image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
||||
# draw = ImageDraw.Draw(pil_image)
|
||||
# #设置字体大小
|
||||
# font = ImageFont.truetype(font_path, 15)
|
||||
# # 在指定位置绘制中文
|
||||
# draw.text((left + 12, bottom + 12), name, font=font, fill=(255, 255, 255))
|
||||
# # 再将PIL图像转换回OpenCV图像格式
|
||||
# frame = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||
# cv2.rectangle(frame, (left, top), (right, bottom), (255, 0, 0), 2)
|
||||
# self.image_signal.emit(frame)
|
||||
# else:
|
||||
# err_message = "Camera read timeout, URL = " + self.camera_url_str
|
||||
# print_error_msg(err_message)
|
||||
# break
|
||||
|
||||
# except Exception as e:
|
||||
# err_message = "Camera read exception, URL = " + self.camera_url_str
|
||||
# print_error_msg(err_message)
|
||||
# if self.running:
|
||||
# time.sleep(2)
|
||||
# break
|
||||
|
||||
# if self.cap:
|
||||
# self.cap.release()
|
||||
# self.cap = None
|
||||
|
||||
# print_inform_msg("Camera connection ended")
|
||||
# time.sleep(0.01)
|
||||
|
||||
|
||||
|
||||
|
||||
65
QT5_Project/Shared_CODE/DialogFaceEnrollItgSingle.py
Normal file
@ -0,0 +1,65 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import annotations
|
||||
import sys, os, io, csv, time, datetime
|
||||
from typing import Callable, Optional
|
||||
|
||||
# PyQt5
|
||||
from PyQt5 import QtWidgets, uic
|
||||
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QTimer, QSize
|
||||
from PyQt5.QtGui import QImage, QPixmap, QKeySequence
|
||||
from PyQt5.QtWidgets import (
|
||||
QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
|
||||
QLabel, QPushButton, QComboBox, QTextEdit, QFileDialog, QMessageBox,
|
||||
QGroupBox, QGridLayout, QDialog, QFormLayout, QSpinBox, QCheckBox,
|
||||
QLineEdit, QTableWidget, QTableWidgetItem,QDialogButtonBox,QShortcut
|
||||
)
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
import cv2
|
||||
from PIL import Image
|
||||
import serial
|
||||
import serial.tools.list_ports
|
||||
|
||||
# ---------- 协议导入----------
|
||||
from Shared_CODE.FaceRecognitionProtocol import (
|
||||
build_reset, build_uvc_view, build_face_view, build_verify,
|
||||
build_enroll_itg_single, build_delete_all, build_get_all_userid,build_delete_user,
|
||||
MID_REPLY, MID_NOTE, CMD_ENROLL, CMD_ENROLL_ITG,
|
||||
parse_reply, parse_note
|
||||
)
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
||||
ui_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../Shared_UI'))
|
||||
|
||||
enrill_ui_file_path = os.path.join(ui_path, "enroll.ui")
|
||||
|
||||
class EnrollItgSingleDialog(QDialog):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
uic.loadUi(enrill_ui_file_path, self)
|
||||
self.cb_admin.setCurrentIndex(0)
|
||||
self.btn_ok.clicked.connect(self.accept)
|
||||
|
||||
def values(self):
|
||||
admin_val = self.cb_admin.currentIndex()
|
||||
uname = self.le_name.text().strip()[:32]
|
||||
face_dir = 0
|
||||
if self.chk_mid.isChecked(): face_dir |= 0x01
|
||||
if self.chk_right.isChecked(): face_dir |= 0x02
|
||||
if self.chk_left.isChecked(): face_dir |= 0x04
|
||||
if self.chk_down.isChecked(): face_dir |= 0x08
|
||||
if self.chk_up.isChecked(): face_dir |= 0x10
|
||||
if face_dir == 0: face_dir = 0x01
|
||||
timeout_val = self.sb_timeout.value()
|
||||
try:
|
||||
itg_val = int(self.le_itg.text().strip(), 0)
|
||||
except ValueError:
|
||||
itg_val = 0
|
||||
return admin_val, uname, face_dir, timeout_val, itg_val
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
dialog = EnrollItgSingleDialog()
|
||||
dialog.exec()
|
||||
sys.exit(0)
|
||||
163
QT5_Project/Shared_CODE/DialogFaceUserManage.py
Normal file
@ -0,0 +1,163 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import annotations
|
||||
import sys, os, io, csv, time, datetime
|
||||
from typing import Callable, Optional
|
||||
|
||||
# PyQt5
|
||||
from PyQt5 import QtWidgets, uic
|
||||
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QTimer, QSize
|
||||
from PyQt5.QtGui import QImage, QPixmap, QKeySequence
|
||||
from PyQt5.QtWidgets import (
|
||||
QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
|
||||
QLabel, QPushButton, QComboBox, QTextEdit, QFileDialog, QMessageBox,
|
||||
QGroupBox, QGridLayout, QDialog, QFormLayout, QSpinBox, QCheckBox,
|
||||
QLineEdit, QTableWidget, QTableWidgetItem,QDialogButtonBox,QShortcut, QHeaderView
|
||||
)
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
import cv2
|
||||
from PIL import Image
|
||||
import serial
|
||||
import serial.tools.list_ports
|
||||
|
||||
# ---------- 协议导入----------
|
||||
from Shared_CODE.FaceRecognitionProtocol import (
|
||||
build_reset, build_uvc_view, build_face_view, build_verify,
|
||||
build_enroll_itg_single, build_delete_all, build_get_all_userid,build_delete_user,
|
||||
MID_REPLY, MID_NOTE, CMD_ENROLL, CMD_ENROLL_ITG,
|
||||
parse_reply, parse_note
|
||||
)
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
||||
ui_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../Shared_UI'))
|
||||
users_ui_file_path = os.path.join(ui_path, "DialogUsers.ui")
|
||||
|
||||
CSV_FILE = os.path.join(ui_path, "users.csv")
|
||||
# -------------------- CSV 工具 --------------------"
|
||||
|
||||
def load_users():
|
||||
users = []
|
||||
try:
|
||||
with open(CSV_FILE, "r", encoding="utf-8") as f:
|
||||
reader = csv.reader(f)
|
||||
for row in reader:
|
||||
if len(row) >= 2:
|
||||
user = {"user_id": row[0], "user_name": row[1]}
|
||||
user["created_at"] = row[2] if len(row) >= 3 else ""
|
||||
users.append(user)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
return users
|
||||
|
||||
|
||||
def save_users_list(users):
|
||||
with open(CSV_FILE, "w", newline="", encoding="utf-8") as f:
|
||||
w = csv.writer(f)
|
||||
for u in users:
|
||||
w.writerow([u.get("user_id", ""), u.get("user_name", ""), u.get("created_at", "")])
|
||||
|
||||
|
||||
def save_user(user_id: int, user_name: str) -> bool:
|
||||
users = load_users()
|
||||
for u in users:
|
||||
if str(u["user_id"]) == str(user_id):
|
||||
return False
|
||||
created_at = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
users.append({"user_id": str(user_id), "user_name": user_name, "created_at": created_at})
|
||||
save_users_list(users)
|
||||
return True
|
||||
|
||||
class UserManageDialog(QDialog):
|
||||
def __init__(self, parent=None, send_func=None):
|
||||
super().__init__(parent)
|
||||
self.send_func = send_func
|
||||
uic.loadUi(users_ui_file_path, self)
|
||||
|
||||
self.btn_delete.clicked.connect(self.delete_selected)
|
||||
self.btn_refresh.clicked.connect(self.refresh)
|
||||
self.btn_get.clicked.connect(self.get_from_device)
|
||||
self.btn_del_all.clicked.connect(self.delete_all_users)
|
||||
self.refresh()
|
||||
|
||||
header = self.table.horizontalHeader()
|
||||
# 用户ID列固定宽度
|
||||
self.table.setColumnWidth(0, 100)
|
||||
# 用户名列自适应内容
|
||||
header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
|
||||
# 注册时间列填充剩余空间
|
||||
header.setSectionResizeMode(2, QHeaderView.Stretch)
|
||||
|
||||
self.message_timer = QTimer()
|
||||
self.message_timer.timeout.connect(self.close_dialog_timeout)
|
||||
|
||||
self.setWindowTitle("消息提示")
|
||||
self.setWindowFlag(Qt.FramelessWindowHint)
|
||||
button_box : QDialogButtonBox = self.buttonBox
|
||||
ok_button = button_box.button(QDialogButtonBox.Ok)
|
||||
if ok_button:
|
||||
ok_button.setText('确定')
|
||||
else:
|
||||
button_box.addButton(QDialogButtonBox.Ok)
|
||||
#定义4个快捷键, Key_Enter, Key_Escape经常被各类程序模块使用, 用Key_End, 与Key_Home来代替
|
||||
QShortcut(QKeySequence(Qt.Key_PageDown), self, activated=self.key_enter_process)
|
||||
QShortcut(QKeySequence(Qt.Key_PageUp), self, activated=self.key_escape_process)
|
||||
QShortcut(QKeySequence(Qt.Key_End), self, activated=self.key_enter_process)
|
||||
QShortcut(QKeySequence(Qt.Key_Home), self, activated=self.key_escape_process)
|
||||
|
||||
QShortcut(QKeySequence(Qt.Key_Return), self, activated=self.key_enter_process) # 普通回车
|
||||
|
||||
def refresh(self):
|
||||
users = load_users()
|
||||
self.table.setRowCount(len(users))
|
||||
for r, u in enumerate(users):
|
||||
self.table.setItem(r, 0, QTableWidgetItem(str(u.get("user_id", ""))))
|
||||
self.table.setItem(r, 1, QTableWidgetItem(u.get("user_name", "")))
|
||||
self.table.setItem(r, 2, QTableWidgetItem(u.get("created_at", "")))
|
||||
|
||||
def delete_selected(self):
|
||||
row = self.table.currentRow()
|
||||
if row < 0:
|
||||
QMessageBox.warning(self, "提示", "删除选择用户")
|
||||
return
|
||||
uid = self.table.item(row, 0).text()
|
||||
uname = self.table.item(row, 1).text()
|
||||
try:
|
||||
uid_int = int(uid)
|
||||
self.send_func(build_delete_user(uid_int))
|
||||
except:
|
||||
pass
|
||||
users = [u for u in load_users() if str(u["user_id"]) != uid]
|
||||
save_users_list(users)
|
||||
self.refresh()
|
||||
QMessageBox.information(self, "提示", f"用户 {uname}(ID={uid}) 已删除")
|
||||
|
||||
def get_from_device(self):
|
||||
self.send_func(build_get_all_userid())
|
||||
|
||||
def delete_all_users(self):
|
||||
self.send_func(build_delete_all())
|
||||
save_users_list([])
|
||||
self.refresh()
|
||||
QMessageBox.information(self, "提示", "已请求删除所有用户并清空本地记录")
|
||||
|
||||
def key_enter_process(self):
|
||||
button_box : QDialogButtonBox = self.buttonBox
|
||||
select_button = button_box.button(QDialogButtonBox.Ok)
|
||||
if select_button:
|
||||
select_button.click()
|
||||
|
||||
def key_escape_process(self):
|
||||
button_box : QDialogButtonBox = self.buttonBox
|
||||
select_button = button_box.button(QDialogButtonBox.Cancel)
|
||||
if select_button:
|
||||
select_button.click()
|
||||
|
||||
#消息超时
|
||||
def close_dialog_timeout(self):
|
||||
self.key_enter_process()
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
dialog = UserManageDialog()
|
||||
dialog.exec()
|
||||
sys.exit(0)
|
||||
54
QT5_Project/Shared_CODE/DialogFaceVerify.py
Normal file
@ -0,0 +1,54 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import annotations
|
||||
import sys, os, io, csv, time, datetime
|
||||
from typing import Callable, Optional
|
||||
|
||||
# PyQt5
|
||||
from PyQt5 import QtWidgets, uic
|
||||
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QTimer, QSize
|
||||
from PyQt5.QtGui import QImage, QPixmap, QKeySequence
|
||||
from PyQt5.QtWidgets import (
|
||||
QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
|
||||
QLabel, QPushButton, QComboBox, QTextEdit, QFileDialog, QMessageBox,
|
||||
QGroupBox, QGridLayout, QDialog, QFormLayout, QSpinBox, QCheckBox,
|
||||
QLineEdit, QTableWidget, QTableWidgetItem,QDialogButtonBox,QShortcut
|
||||
)
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
import cv2
|
||||
from PIL import Image
|
||||
import serial
|
||||
import serial.tools.list_ports
|
||||
|
||||
# ---------- 协议导入----------
|
||||
from Shared_CODE.FaceRecognitionProtocol import (
|
||||
build_reset, build_uvc_view, build_face_view, build_verify,
|
||||
build_enroll_itg_single, build_delete_all, build_get_all_userid,build_delete_user,
|
||||
MID_REPLY, MID_NOTE, CMD_ENROLL, CMD_ENROLL_ITG,
|
||||
parse_reply, parse_note
|
||||
)
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
||||
ui_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../Shared_UI'))
|
||||
|
||||
verify_ui_file_path = os.path.join(ui_path, "verify.ui")
|
||||
|
||||
class VerifyDialog(QDialog):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
uic.loadUi(verify_ui_file_path, self)
|
||||
self.cb_rightaway.setCurrentIndex(0)
|
||||
self.sb_timeout.setValue(10)
|
||||
self.btn_ok.clicked.connect(self.accept)
|
||||
|
||||
def values(self):
|
||||
pd_val = self.cb_rightaway.currentIndex()
|
||||
timeout_val = self.sb_timeout.value()
|
||||
return pd_val, timeout_val
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
dialog = VerifyDialog()
|
||||
dialog.exec()
|
||||
sys.exit(0)
|
||||
405
QT5_Project/Shared_CODE/FaceRecognitionProtocol.py
Normal file
@ -0,0 +1,405 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import annotations
|
||||
import struct
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional, Tuple, List
|
||||
from QT5_Project.Shared_CODE.DialogInform import DialogInform
|
||||
|
||||
SYNC = b"\xEF\xAA"
|
||||
|
||||
# Msg IDs
|
||||
MID_REPLY = 0x00
|
||||
MID_NOTE = 0x01
|
||||
MID_IMAGE = 0x02
|
||||
|
||||
# Host->Module (Command) IDs (subset used by the tool)
|
||||
CMD_RESET = 0x10
|
||||
CMD_GET_STATUS = 0x11
|
||||
CMD_VERIFY = 0x12
|
||||
CMD_ENROLL = 0x13
|
||||
CMD_DELETE_USER = 0x20
|
||||
CMD_DELETE_ALL = 0x21
|
||||
CMD_GET_USER_INFO = 0x22
|
||||
CMD_FACE_RESET = 0x23
|
||||
CMD_GET_ALL_USERID = 0x24
|
||||
CMD_ENROLL_ITG = 0x26
|
||||
CMD_GET_VERSION = 0x30
|
||||
CMD_INIT_ENCRYPTION = 0x50
|
||||
CMD_SET_RELEASE_KEY = 0x52
|
||||
CMD_SET_DEBUG_KEY = 0x53
|
||||
CMD_GET_SN = 0x93
|
||||
|
||||
CMD_READ_USB_UVC = 0xB0
|
||||
CMD_SET_USB_UVC = 0xB1
|
||||
CMD_FACE_VIEW = 0xB5
|
||||
|
||||
CMD_UVC_VIEW = 0xC0
|
||||
|
||||
CMD_UPGRADE_FW = 0xF6
|
||||
CMD_ENROLL_WITH_PHOTO = 0xF7
|
||||
CMD_LED_CONTROL = 0xF9
|
||||
|
||||
CMD_ENROLL_SINGLE = 0x1D
|
||||
CMD_DEMO_MODE = 0xFE
|
||||
|
||||
# NOTE nids
|
||||
NID_READY = 0x00
|
||||
NID_FACE_STATE = 0x01
|
||||
NID_UNKNOWNERROR = 0x02
|
||||
NID_OTA_DONE = 0x03
|
||||
NID_EYE_STATE = 0x04
|
||||
|
||||
# REPLY result codes (partial)
|
||||
MR_SUCCESS = 0x00
|
||||
MR_REJECTED = 0x01
|
||||
MR_ABORTED = 0x02
|
||||
MR_FAILED4_CAMERA = 0x04
|
||||
MR_FAILED4_UNKNOWNREASON = 0x05
|
||||
MR_FAILED4_INVALIDPARAM = 0x06
|
||||
MR_FAILED4_NOMEMORY = 0x07
|
||||
MR_FAILED4_UNKNOWNUSER = 0x08
|
||||
MR_FAILED4_MAXUSER = 0x09
|
||||
MR_FAILED4_FACEENROLLED = 0x0A
|
||||
MR_FAILED4_LIVENESSCHECK = 0x0C
|
||||
MR_FAILED4_TIMEOUT = 0x0D
|
||||
MR_FAILED4_AUTHORIZATION = 0x0E
|
||||
MR_FAILED4_READ_FILE = 0x13
|
||||
MR_FAILED4_WRITE_FILE = 0x14
|
||||
MR_FAILED4_NO_ENCRYPT = 0x15
|
||||
MR_FAILED4_NO_RGBIMAGE = 0x17
|
||||
MR_FAILED4_JPGPHOTO_LARGE = 0x18
|
||||
MR_FAILED4_JPGPHOTO_SMALL = 0x19
|
||||
|
||||
# ---- 映射表 ----
|
||||
# 指令名称映射(指令ID -> 中文名称)
|
||||
CMD_NAMES = {
|
||||
CMD_RESET: "复位",
|
||||
CMD_GET_STATUS: "获取状态",
|
||||
CMD_VERIFY: "人脸验证",
|
||||
CMD_LED_CONTROL: "LED控制",
|
||||
CMD_ENROLL: "人脸录入(多帧)",
|
||||
CMD_ENROLL_SINGLE: "人脸录入(单帧)",
|
||||
CMD_ENROLL_ITG: "人脸录入(集成式)",
|
||||
CMD_DELETE_USER: "删除单个用户",
|
||||
CMD_DELETE_ALL: "删除所有用户",
|
||||
CMD_GET_USER_INFO: "获取用户信息",
|
||||
CMD_GET_ALL_USERID: "获取所有用户ID",
|
||||
CMD_GET_VERSION: "获取版本信息",
|
||||
CMD_INIT_ENCRYPTION: "初始化加密",
|
||||
CMD_ENROLL_WITH_PHOTO: "照片录入注册",
|
||||
CMD_FACE_VIEW: "人脸框显示切换",
|
||||
CMD_UVC_VIEW: "视频模式切换",
|
||||
}
|
||||
|
||||
# 结果码名称映射(结果码 -> 中文名称)
|
||||
RESULT_NAMES = {
|
||||
0x00: "成功",
|
||||
0x01: "被拒绝",
|
||||
0x02: "已中止",
|
||||
0x04: "失败:相机异常",
|
||||
0x05: "失败:未知错误",
|
||||
0x06: "失败:参数无效",
|
||||
0x07: "失败:内存不足",
|
||||
0x08: "失败:用户不存在",
|
||||
0x09: "失败:超过最大用户数",
|
||||
0x0A: "失败:已录入该用户",
|
||||
0x0C: "失败:活体检测未通过",
|
||||
0x0D: "失败:超时",
|
||||
0x0E: "失败:认证失败",
|
||||
0x13: "失败:文件读取错误",
|
||||
0x14: "失败:文件写入错误",
|
||||
0x15: "失败:未启用加密",
|
||||
0x17: "失败:无RGB图像",
|
||||
0x18: "失败:JPG文件过大",
|
||||
0x19: "失败:JPG文件过小",
|
||||
}
|
||||
|
||||
# 通知状态名称映射(状态码 -> 中文名称)
|
||||
NOTE_NAMES = {
|
||||
0x00: "就绪",
|
||||
0x01: "人脸状态",
|
||||
0x02: "未知错误",
|
||||
0x03: "OTA升级完成",
|
||||
0x04: "眼睛状态",
|
||||
}
|
||||
|
||||
# 帧头同步字
|
||||
SYNC = b"\xEF\xAA"
|
||||
|
||||
#########################################################################################
|
||||
|
||||
|
||||
#########################################################################################
|
||||
|
||||
def xor_checksum(data: bytes) -> int:
|
||||
"""
|
||||
计算异或校验 (XOR),范围为整个帧的 MsgID + Size + Data 部分,
|
||||
不包括 SYNC(2字节) 和最后的校验字节本身。
|
||||
"""
|
||||
chk = 0
|
||||
for b in data:
|
||||
chk ^= b
|
||||
return chk & 0xFF
|
||||
|
||||
|
||||
def pack_frame(msg_id: int, data: bytes = b"") -> bytes:
|
||||
"""
|
||||
封装一帧数据
|
||||
格式: SYNC(2) + MsgID(1) + Size(2) + Data(N) + Chk(1)
|
||||
- MsgID: 命令字
|
||||
- Size : Data 长度 (big endian, 2字节)
|
||||
- Data : 负载
|
||||
- Chk : 校验 = MsgID..Data 的所有字节异或
|
||||
"""
|
||||
size = struct.pack(">H", len(data)) # 大端编码
|
||||
head = bytes([msg_id]) + size + data # MsgID + Size + Data
|
||||
chk = xor_checksum(head) # 计算校验
|
||||
return SYNC + head + bytes([chk]) # 拼装完整帧
|
||||
|
||||
|
||||
def unpack_frame(buf: bytes) -> Tuple[Optional[dict], int]:
|
||||
"""
|
||||
尝试从缓冲区中解析出一帧。
|
||||
返回: (frame_dict, consumed_bytes)
|
||||
- 如果没有完整帧: (None, 0)
|
||||
- 如果解析成功: ({"msg_id":..,"size":..,"data":..,"raw":..}, 已消耗字节数)
|
||||
- 如果校验失败: ({"error":"checksum","raw":..}, 已消耗字节数)
|
||||
|
||||
buf: 原始接收缓冲区
|
||||
"""
|
||||
if len(buf) < 6: # 最小帧长: SYNC(2) + MsgID(1) + Size(2) + Chk(1)
|
||||
return None, 0
|
||||
|
||||
# 查找 SYNC
|
||||
idx = buf.find(SYNC)
|
||||
if idx == -1:
|
||||
# 没找到帧头,整个缓冲区丢弃
|
||||
return None, len(buf)
|
||||
|
||||
# 余下字节不足以解析长度字段,继续等待
|
||||
if len(buf) - idx < 6:
|
||||
return None, 0
|
||||
|
||||
msg_id = buf[idx+2]
|
||||
size = struct.unpack(">H", buf[idx+3:idx+5])[0]
|
||||
total = 2 + 1 + 2 + size + 1 # 整个帧长度
|
||||
|
||||
# 数据不完整,继续等待
|
||||
if len(buf) - idx < total:
|
||||
return None, 0
|
||||
|
||||
# 截取一帧
|
||||
frame = buf[idx: idx+total]
|
||||
content = frame[2:-1] # 不包括 SYNC 和最后的校验字节
|
||||
chk = frame[-1]
|
||||
|
||||
# 校验
|
||||
if xor_checksum(content) != chk:
|
||||
return {"error": "checksum", "raw": frame}, total
|
||||
|
||||
# 提取有效载荷
|
||||
data = frame[5:-1]
|
||||
return {
|
||||
"msg_id": msg_id,
|
||||
"size": size,
|
||||
"data": data,
|
||||
"raw": frame
|
||||
}, total
|
||||
|
||||
# ------ Builders for key commands ------
|
||||
|
||||
def build_reset() -> bytes:
|
||||
return pack_frame(CMD_RESET)
|
||||
|
||||
def build_get_status() -> bytes:
|
||||
return pack_frame(CMD_GET_STATUS)
|
||||
|
||||
def build_led_control(state: int) -> bytes:
|
||||
"""
|
||||
构建LED控制指令帧(0xF9指令),符合校验位逻辑
|
||||
:param state: LED状态值,0=灭,1=亮
|
||||
"""
|
||||
# 数据部分:1字节状态值(根据模组要求定义,如0x00=灭,0x01=亮)
|
||||
data = struct.pack("B", state & 0xFF) # 确保是单字节
|
||||
return pack_frame(CMD_LED_CONTROL, data) # CMD_LED_CONTROL = 0xF9
|
||||
|
||||
#pd_rightaway: int,验证成功后是否立即断电(0=不立即断电,1=立即断电),仅保留低8位有效(通过&0xFF确保)
|
||||
#timeout: int,验证超时时间(单位:秒),范围通常为1-255秒,仅保留低8位有效(通过&0xFF确保)
|
||||
def build_verify(pd_rightaway, timeout: int = 10) -> bytes:
|
||||
data = struct.pack("BB", pd_rightaway & 0xFF, timeout & 0xFF)
|
||||
return pack_frame(CMD_VERIFY, data)
|
||||
|
||||
def build_enroll(admin: int, user_name: str, face_dir: int, timeout: int = 10) -> bytes:
|
||||
name_bytes = user_name.encode("utf-8")[:32]
|
||||
name_bytes = name_bytes + bytes(32 - len(name_bytes))
|
||||
data = struct.pack("B", admin & 0xFF) + name_bytes + struct.pack("BB", face_dir & 0xFF, timeout & 0xFF)
|
||||
return pack_frame(CMD_ENROLL, data)
|
||||
|
||||
def build_enroll_single(admin: int, user_name: str, timeout: int = 10) -> bytes:
|
||||
name_bytes = user_name.encode("utf-8")[:32]
|
||||
name_bytes = name_bytes + bytes(32 - len(name_bytes))
|
||||
# face_dir not used per manual for ENROLL_SINGLE
|
||||
data = struct.pack("B", admin & 0xFF) + name_bytes + struct.pack("BB", 0x00, timeout & 0xFF)
|
||||
return pack_frame(0x1D, data)
|
||||
|
||||
def build_enroll_itg_single(admin: int, user_name: str, face_dir: int, timeout: int, itg_param: int) -> bytes:
|
||||
"""
|
||||
构造 ENROLL_ITG_SINGLE 命令帧
|
||||
admin: 0=普通用户, 1=管理员
|
||||
user_name: 最多 32 字节
|
||||
face_dir: 人脸方向 bitmask
|
||||
timeout: 超时时间 (秒)
|
||||
itg_param: ITG 参数 (4 字节)
|
||||
"""
|
||||
# user_name 补齐到 32 字节
|
||||
name_bytes = user_name.encode("utf-8")[:32]
|
||||
name_bytes = name_bytes.ljust(32, b"\x00")
|
||||
|
||||
payload = struct.pack(
|
||||
">B32sBBI",
|
||||
admin & 0xFF,
|
||||
name_bytes,
|
||||
face_dir & 0xFF,
|
||||
timeout & 0xFF,
|
||||
itg_param & 0xFFFFFFFF,
|
||||
)
|
||||
return pack_frame(CMD_ENROLL_ITG, payload)
|
||||
|
||||
def build_delete_user(user_id: int) -> bytes:
|
||||
return pack_frame(CMD_DELETE_USER, struct.pack("BB", (user_id>>8)&0xFF, user_id&0xFF))
|
||||
|
||||
def build_delete_all() -> bytes:
|
||||
return pack_frame(CMD_DELETE_ALL)
|
||||
|
||||
def build_get_user_info(user_id: int) -> bytes:
|
||||
return pack_frame(CMD_GET_USER_INFO, struct.pack("BB", (user_id>>8)&0xFF, user_id&0xFF))
|
||||
|
||||
def build_get_all_userid() -> bytes:
|
||||
return pack_frame(CMD_GET_ALL_USERID)
|
||||
|
||||
def build_get_version() -> bytes:
|
||||
return pack_frame(CMD_GET_VERSION)
|
||||
|
||||
def build_uvc_view(state: int) -> bytes:
|
||||
return pack_frame(CMD_UVC_VIEW, struct.pack("B", state & 0xFF))
|
||||
|
||||
def build_face_view(state: int) -> bytes:
|
||||
return pack_frame(CMD_FACE_VIEW, struct.pack("B", state & 0xFF))
|
||||
|
||||
def build_init_encryption(seed4: bytes, mode: int = 0) -> bytes:
|
||||
if len(seed4) != 4:
|
||||
raise ValueError("seed must be 4 bytes")
|
||||
return pack_frame(CMD_INIT_ENCRYPTION, seed4 + bytes([mode & 0xFF]))
|
||||
|
||||
def build_enroll_with_photo_begin(photo_size: int) -> bytes:
|
||||
# According to manual: Seq=0, Photo data=4-byte big-endian size
|
||||
data = b"\x00\x00" + struct.pack(">I", photo_size)
|
||||
return pack_frame(CMD_ENROLL_WITH_PHOTO, data)
|
||||
|
||||
def build_enroll_with_photo_chunk(seq: int, chunk: bytes) -> bytes:
|
||||
# Seq starts from 1 and increases; MTU=246
|
||||
data = struct.pack(">H", seq & 0xFFFF) + chunk
|
||||
return pack_frame(CMD_ENROLL_WITH_PHOTO, data)
|
||||
|
||||
# ---- Parsers (Reply / Note / Image) ----
|
||||
def parse_reply(data: bytes) -> dict:
|
||||
if len(data) < 2:
|
||||
return {"type": "REPLY", "error": "short"}
|
||||
|
||||
mid = data[0]
|
||||
result = data[1]
|
||||
rest = data[2:]
|
||||
|
||||
# 通用字段
|
||||
info = {
|
||||
"type": "REPLY",
|
||||
"mid": mid,
|
||||
"mid_name": CMD_NAMES.get(mid, f"0x{mid:02X}"),
|
||||
"result": result,
|
||||
"result_name": RESULT_NAMES.get(result, f"0x{result:02X}"),
|
||||
"ok": (result == 0), # 成功标志
|
||||
}
|
||||
|
||||
# ========== 分支解析 ==========
|
||||
if mid == CMD_VERIFY and len(rest) >= 36:
|
||||
uid = (rest[0] << 8) | rest[1]
|
||||
name = rest[2:34].rstrip(b"\x00").decode("utf-8", errors="ignore")
|
||||
admin = rest[34]
|
||||
unlock = rest[35]
|
||||
info.update({
|
||||
"user_id": uid,
|
||||
"user_name": name,
|
||||
"admin": admin,
|
||||
"unlock_status": unlock,
|
||||
})
|
||||
|
||||
elif mid in (CMD_ENROLL, 0x1D, CMD_ENROLL_ITG) and len(rest) >= 3:
|
||||
uid = (rest[0] << 8) | rest[1]
|
||||
face_dir = rest[2]
|
||||
info.update({"user_id": uid, "face_direction": face_dir})
|
||||
|
||||
elif mid == CMD_GET_STATUS and len(rest) >= 1:
|
||||
status = rest[0]
|
||||
status_map = {0: "空闲", 1: "录入中", 2: "验证中"}
|
||||
info.update({"status": status, "status_name": status_map.get(status, f"0x{status:02X}")})
|
||||
|
||||
elif mid == CMD_GET_USER_INFO and len(rest) >= 35:
|
||||
uid = (rest[0] << 8) | rest[1]
|
||||
name = rest[2:34].decode("ascii", errors="ignore")
|
||||
admin = rest[34]
|
||||
info.update({"user_id": uid, "user_name": name, "admin": admin})
|
||||
|
||||
elif mid == CMD_GET_ALL_USERID and len(rest) >= 1:
|
||||
n = rest[0]
|
||||
ids = [(rest[i] << 8) | rest[i + 1] for i in range(1, 1 + 2 * n, 2) if i + 1 < len(rest)]
|
||||
info.update({"count": n, "user_ids": ids})
|
||||
|
||||
elif mid == CMD_GET_VERSION:
|
||||
info["version_str"] = rest.decode("ascii", errors="ignore")
|
||||
|
||||
elif mid == CMD_LED_CONTROL and len(rest) >= 1:
|
||||
led_state = rest[0]
|
||||
led_map = {0: "灭", 1: "亮"}
|
||||
info.update({"led_state": led_state, "led_state_name": led_map.get(led_state, f"0x{led_state:02X}")})
|
||||
|
||||
elif mid == CMD_ENROLL_WITH_PHOTO:
|
||||
if len(rest) >= 2:
|
||||
seq = (rest[0] << 8) | rest[1]
|
||||
info["seq"] = seq
|
||||
if len(rest) >= 6:
|
||||
uid = (rest[2] << 8) | rest[3]
|
||||
info["user_id"] = uid
|
||||
|
||||
# 自动生成提示消息
|
||||
if info["ok"]:
|
||||
if mid == CMD_VERIFY and "user_id" in info:
|
||||
info["message"] = (
|
||||
f"{info['mid_name']} 成功 - 用户ID: {info['user_id']}"
|
||||
)
|
||||
else:
|
||||
info["message"] = f"{info['mid_name']} 成功"
|
||||
else:
|
||||
info["message"] = f"{info['mid_name']} 失败: {info['result_name']}"
|
||||
|
||||
return info
|
||||
|
||||
|
||||
def parse_note(data: bytes) -> dict:
|
||||
if len(data) < 1:
|
||||
return {"type":"NOTE","error":"short"}
|
||||
nid = data[0]
|
||||
rest = data[1:]
|
||||
info = {"type":"NOTE","nid": nid, "nid_name": NOTE_NAMES.get(nid, f"0x{nid:02X}")}
|
||||
|
||||
if nid == NID_FACE_STATE and len(rest) >= 16:
|
||||
vals = struct.unpack(">hhhhhhhh", rest[:16])
|
||||
info.update({
|
||||
"state": vals[0],
|
||||
"left": vals[1], "top": vals[2], "right": vals[3], "bottom": vals[4],
|
||||
"yaw": vals[5], "pitch": vals[6], "roll": vals[7]
|
||||
})
|
||||
|
||||
return info
|
||||
|
||||
def parse_image(data: bytes) -> dict:
|
||||
return {"type":"IMAGE","jpeg":data}
|
||||
@ -149,7 +149,8 @@ class system_parameter :
|
||||
default_config = {
|
||||
'screen_blanking_time': '360',
|
||||
'system_password': '2008',
|
||||
'language': 'zh_CN'
|
||||
'language': 'zh_CN',
|
||||
"facerecognition_timeout": '10',
|
||||
}
|
||||
|
||||
# 如果配置文件存在,加载配置
|
||||
@ -161,6 +162,7 @@ class system_parameter :
|
||||
self.screen_blanking_time = system_param.get('blanking_time', default_config['screen_blanking_time'])
|
||||
self.system_password = system_param.get('password', default_config['system_password'])
|
||||
self.language = system_param.get('language', default_config['language'])
|
||||
self.facerecognition_timeout = system_param.get('facerecognition_timeout', default_config['facerecognition_timeout'])
|
||||
except (configparser.Error, KeyError) as e:
|
||||
# 处理读取配置文件时的错误
|
||||
print(f"读取配置错误: {e}。使用默认设置。")
|
||||
@ -174,6 +176,7 @@ class system_parameter :
|
||||
self.screen_blanking_time = default_config['screen_blanking_time']
|
||||
self.system_password = default_config['system_password']
|
||||
self.language = default_config['language']
|
||||
self.facerecognition_timeout = default_config['facerecognition_timeout']
|
||||
|
||||
def write_to_ini(self):
|
||||
"""将默认配置写入ini文件。"""
|
||||
@ -181,7 +184,8 @@ class system_parameter :
|
||||
config['SystemParam'] = {
|
||||
'blanking_time': self.screen_blanking_time,
|
||||
'password': self.system_password,
|
||||
'language': self.language
|
||||
'language': self.language,
|
||||
'facerecognition_timeout': self.facerecognition_timeout
|
||||
}
|
||||
with open("system_parameter.ini", 'w') as configfile:
|
||||
config.write(configfile)
|
||||
@ -208,12 +212,21 @@ class system_parameter :
|
||||
def get_system_language(self):
|
||||
return self.language
|
||||
|
||||
def set_verify_timeout(self, timeout):
|
||||
self.facerecognition_timeout = timeout
|
||||
self.write_to_ini()
|
||||
|
||||
def get_verify_timeout(self):
|
||||
return int(self.facerecognition_timeout)
|
||||
|
||||
# 向文件存储系统信息
|
||||
def write_to_ini(self):
|
||||
system_param = configparser.ConfigParser()
|
||||
system_param['SystemParam'] = {'language': self.language,
|
||||
'blanking_time': self.screen_blanking_time,
|
||||
'password': self.system_password}
|
||||
'password': self.system_password,
|
||||
'facerecognition_timeout': self.facerecognition_timeout}
|
||||
|
||||
with open('system_parameter.ini', 'w') as f:
|
||||
system_param.write(f)
|
||||
|
||||
187
QT5_Project/Shared_UI/DialogUsers.ui
Normal file
@ -0,0 +1,187 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogInform</class>
|
||||
<widget class="QDialog" name="DialogInform">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>632</width>
|
||||
<height>483</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;
|
||||
background-color: rgba(0, 0, 0, 0);</string>
|
||||
</property>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>270</y>
|
||||
<width>381</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::NoButton</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<y>0</y>
|
||||
<width>411</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Microsoft YaHei UI</family>
|
||||
<pointsize>16</pointsize>
|
||||
<italic>false</italic>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(255, 170, 0);
|
||||
font: 16pt "Microsoft YaHei UI";</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTableWidget" name="table">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>70</y>
|
||||
<width>521</width>
|
||||
<height>295</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(255, 255, 255);</string>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>用户ID</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>用户名</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>注册时间</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_del_all">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>388</x>
|
||||
<y>430</y>
|
||||
<width>106</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>删除所有用户</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_delete">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>50</x>
|
||||
<y>430</y>
|
||||
<width>107</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>删除选中用户</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_refresh">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>163</x>
|
||||
<y>430</y>
|
||||
<width>106</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(0, 0, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>刷新</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btn_get">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>275</x>
|
||||
<y>430</y>
|
||||
<width>107</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>获取设备用户列表</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>DialogInform</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>DialogInform</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
123
QT5_Project/Shared_UI/FaceRecognition.ui
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogInform</class>
|
||||
<widget class="QDialog" name="DialogInform">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>587</width>
|
||||
<height>290</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border:none;
|
||||
background-color: rgba(0, 0, 0, 0);</string>
|
||||
</property>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>110</x>
|
||||
<y>160</y>
|
||||
<width>381</width>
|
||||
<height>32</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::NoButton</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>75</x>
|
||||
<y>97</y>
|
||||
<width>411</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Microsoft YaHei UI</family>
|
||||
<pointsize>16</pointsize>
|
||||
<italic>false</italic>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgba(85, 170, 127,0);
|
||||
color: rgb(255, 170, 0);
|
||||
font: 16pt "Microsoft YaHei UI";</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="BG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>731</width>
|
||||
<height>291</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>img/infrom.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>BG</zorder>
|
||||
<zorder>buttonBox</zorder>
|
||||
<zorder>label</zorder>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>DialogInform</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>DialogInform</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
144
QT5_Project/Shared_UI/enroll.ui
Normal file
@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>EnrollDialog</class>
|
||||
<widget class="QDialog" name="EnrollDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>480</width>
|
||||
<height>254</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>ENROLL_ITG_SINGLE</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_admin">
|
||||
<property name="text">
|
||||
<string>是否管理员:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="cb_admin">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>0 - 普通用户</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>1 - 管理员</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_name">
|
||||
<property name="text">
|
||||
<string>用户名:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="le_name"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lbl_dir">
|
||||
<property name="text">
|
||||
<string>人脸方向:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QGroupBox" name="group_dir">
|
||||
<property name="title">
|
||||
<string>人脸方向</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="chk_mid">
|
||||
<property name="text">
|
||||
<string>MID</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="chk_right">
|
||||
<property name="text">
|
||||
<string>RIGHT</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QCheckBox" name="chk_left">
|
||||
<property name="text">
|
||||
<string>LEFT</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="chk_down">
|
||||
<property name="text">
|
||||
<string>DOWN</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="chk_up">
|
||||
<property name="text">
|
||||
<string>UP</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_timeout">
|
||||
<property name="text">
|
||||
<string>超时时间(秒):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="sb_timeout">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>300</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lbl_itg">
|
||||
<property name="text">
|
||||
<string>ITG 参数:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="le_itg">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="btn_ok">
|
||||
<property name="text">
|
||||
<string>发送</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1
QT5_Project/Shared_UI/users.csv
Normal file
@ -0,0 +1 @@
|
||||
1,1,2025-09-13 10:06:01
|
||||
|