python+PyQt5实现指示灯检查

news2024/11/15 20:09:52

UI:

源代码:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'CheckImageWinFrm.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
from PyQt5 import QtWidgets
from PyQt5 import QtGui
from PyQt5 import QtCore
import logging
import os
import json
import configparser
from PyQt5.QtCore import pyqtSignal
import sys

class Ui_Form(QWidget):
    def __init__(self):
        super().__init__()
        self.config = configparser.ConfigParser()  # 创建对象
        self.itemName = ''  # 项目名称
        self.testArgs = []  # 测试参数信息
        self.testStandardArgs = ''  # 测试准标参数
        self.Err = ''  # 错误信息
        self.cfgArgs = []  # 測試參數
        self.testCfgInfo=[]#测试配置信息
        self.testResult=''#测试结果

        # 生成日志信息
        self.logger = logging.getLogger('my_logger')  # 步骤1 创建日志记录器
        self.logger.setLevel(logging.DEBUG)  # 步骤2 将指定日志级别
        self.file_handler = logging.FileHandler('./log/log.txt')  # 步骤3 创建文件处理器
        self.formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')  # 步骤4 创建格式化器
        self.file_handler.setFormatter(self.formatter)  # 步骤4 将格式化器添加到处理器
        self.logger.addHandler(self.file_handler)  # 步骤5 将处理器添加到日志记录器

        # 读取配置
        self.config.read('./Conf/config.conf', encoding='utf-8')  # 读取配置文件,如果配置文件不存在则创建

        #读取配置信息
        temp=[]
        temp.append(self.config.get('CheckImage','Left1_Info'))
        temp.append(self.config.get('CheckImage','Left2_Info'))
        temp.append(self.config.get('CheckImage','Left3_Info'))
        temp.append(self.config.get('CheckImage','Rigth1_Info'))
        temp.append(self.config.get('CheckImage','Rigth2_Info'))
        temp.append(self.config.get('CheckImage','Rigth3_Info'))
        for t in temp:
            if 'N/A' not in t:
                self.testCfgInfo.append(t)#添加非为空的配置数据
        # 读取测试配置
        self.itemName = self.config.get('TestItemNameArrays', 'CheckImage')  # 项目名称
        self.itemFailSleepExit = int(self.config.get('TestItemWinFrmSleepExit', 'CheckImage'))  # 项目测试Fail延时退出
        self.testArgs.clear()
        self.testArgs = self.ReadJsonInfo('./Conf/TestArgs.json')  # 读取测试参数信息
        self.setupUi()

        self.lbl_CurrentSwTest.setText('读取配置信息...')
        self.lbl_ItemName.setText('指示灯核对测试')
        self.lbl_ItemName.setStyleSheet('background-color: rgb(255, 170, 127);color: rgb(255, 255, 127);')

        self.lbl_TestItem.setText(str(len(self.testCfgInfo)))

        #将控件添加到容器中
        self.lbl_txt=[self.lbl_Left_1,self.lbl_Rigth_1,self.lbl_Left_2,self.lbl_Rigth_2,self.lbl_Left_3,self.lbl_Rigth_3]
        self.lbl_Image=[self.lbl_Left_Image_1,self.lbl_Rigth_Image_1,self.lbl_Left_Image_2,self.lbl_Rigth_Image_2,self.lbl_Left_3,self.lbl_Rigth_Image_3]

        # 添加控件
        self.lbl_CurrentSwTest.setText('加载图片,人为核对确认...')
        i=0
        for tscfgif in self.testCfgInfo:
            ts=tscfgif.split('|')
            font = QtGui.QFont()
            font.setPointSize(10)
            self.lbl_txt[i].setFont(font)
            self.lbl_txt[i].setText(ts[1])
            self.lbl_Image[i].setPixmap(QtGui.QPixmap(ts[0]).scaled(210, 210, QtCore.Qt.KeepAspectRatio,QtCore.Qt.SmoothTransformation))# 假设尺寸为 100x100,保持图片比例
            #self.lbl_Image[i].setScaledContents(True)  # 开启缩放内容以适应标签大小
            i+=1

        #确认控件单击功能
        self.pushButton.clicked.connect(self.on_button_clicked)#添加单击事件

    #确认单击事件
    def on_button_clicked(self):
        self.UpdateJsonTestArgs(self.itemName, f'test Pass Item {str(len(self.testCfgInfo))}', 'PASS')  # 更新测试信息
        print('点击确认PASS!!')
        sys.exit(0)

    def setupUi(self):
        self.setObjectName("Check Indicator Light Information")
        self.resize(1084, 629)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("IMAGE/files.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.setWindowIcon(icon)
        self.gridLayout = QtWidgets.QGridLayout(self)
        self.gridLayout.setObjectName("gridLayout")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout()
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.label_4 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_4.setFont(font)
        self.label_4.setText("")
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")
        self.verticalLayout_4.addWidget(self.label_4)
        self.lbl_logo = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_logo.setFont(font)
        self.lbl_logo.setText("")
        self.lbl_logo.setPixmap(QtGui.QPixmap("IMAGE/logo.jpg"))
        self.lbl_logo.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_logo.setObjectName("lbl_logo")
        self.verticalLayout_4.addWidget(self.lbl_logo)
        self.label_5 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_5.setFont(font)
        self.label_5.setText("")
        self.label_5.setAlignment(QtCore.Qt.AlignCenter)
        self.label_5.setObjectName("label_5")
        self.verticalLayout_4.addWidget(self.label_5)
        self.horizontalLayout_2.addLayout(self.verticalLayout_4)
        self.label_2 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_2.setFont(font)
        self.label_2.setStyleSheet("background-color: rgb(170, 170, 127);")
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout_2.addWidget(self.label_2)
        self.verticalLayout_3.addLayout(self.horizontalLayout_2)
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.lbl_CurrentSwTest = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_CurrentSwTest.setFont(font)
        self.lbl_CurrentSwTest.setStyleSheet("background-color: rgb(85, 255, 127);")
        self.lbl_CurrentSwTest.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_CurrentSwTest.setObjectName("lbl_CurrentSwTest")
        self.verticalLayout_7.addWidget(self.lbl_CurrentSwTest)
        self.verticalLayout_3.addLayout(self.verticalLayout_7)
        self.horizontalLayout.addLayout(self.verticalLayout_3)
        self.verticalLayout_5 = QtWidgets.QVBoxLayout()
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.label_6 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_6.setFont(font)
        self.label_6.setStyleSheet("background-color: rgb(255, 170, 127);")
        self.label_6.setAlignment(QtCore.Qt.AlignCenter)
        self.label_6.setObjectName("label_6")
        self.horizontalLayout_4.addWidget(self.label_6)
        self.verticalLayout_6 = QtWidgets.QVBoxLayout()
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.label_7 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_7.setFont(font)
        self.label_7.setStyleSheet("background-color: rgb(255, 170, 127);")
        self.label_7.setAlignment(QtCore.Qt.AlignCenter)
        self.label_7.setObjectName("label_7")
        self.verticalLayout_6.addWidget(self.label_7)
        self.lbl_ItemName = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_ItemName.setFont(font)
        self.lbl_ItemName.setStyleSheet("background-color: rgb(255, 170, 127);")
        self.lbl_ItemName.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_ItemName.setObjectName("lbl_ItemName")
        self.verticalLayout_6.addWidget(self.lbl_ItemName)
        self.horizontalLayout_4.addLayout(self.verticalLayout_6)
        self.verticalLayout_5.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.label_10 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_10.setFont(font)
        self.label_10.setStyleSheet("background-color: rgb(170, 170, 127);")
        self.label_10.setAlignment(QtCore.Qt.AlignCenter)
        self.label_10.setObjectName("label_10")
        self.horizontalLayout_3.addWidget(self.label_10)
        self.lbl_TestItem = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_TestItem.setFont(font)
        self.lbl_TestItem.setStyleSheet("background-color: rgb(170, 170, 127);")
        self.lbl_TestItem.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_TestItem.setObjectName("lbl_TestItem")
        self.horizontalLayout_3.addWidget(self.lbl_TestItem)
        self.verticalLayout_5.addLayout(self.horizontalLayout_3)
        self.horizontalLayout.addLayout(self.verticalLayout_5)
        self.verticalLayout.addLayout(self.horizontalLayout,1)
        self.gridLayout_2 = QtWidgets.QGridLayout()
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.verticalLayout_12 = QtWidgets.QVBoxLayout()
        self.verticalLayout_12.setObjectName("verticalLayout_12")
        self.lbl_Left_3 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_Left_3.setFont(font)
        self.lbl_Left_3.setStyleSheet("background-color: rgb(0, 0, 0);\n"
                                      "color: rgb(255, 170, 127);")
        self.lbl_Left_3.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Left_3.setObjectName("lbl_Left_3")
        self.verticalLayout_12.addWidget(self.lbl_Left_3,1)
        self.verticalLayout_18 = QtWidgets.QVBoxLayout()
        self.verticalLayout_18.setObjectName("verticalLayout_18")
        self.lbl_Left_Image_3 = QtWidgets.QLabel(self)
        self.lbl_Left_Image_3.setText("")
        self.lbl_Left_Image_3.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Left_Image_3.setObjectName("lbl_Left_Image_3")
        self.verticalLayout_18.addWidget(self.lbl_Left_Image_3)
        self.verticalLayout_12.addLayout(self.verticalLayout_18,9)
        self.horizontalLayout_6.addLayout(self.verticalLayout_12)
        self.verticalLayout_13 = QtWidgets.QVBoxLayout()
        self.verticalLayout_13.setObjectName("verticalLayout_13")
        self.lbl_Rigth_3 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_Rigth_3.setFont(font)
        self.lbl_Rigth_3.setStyleSheet("background-color: rgb(0, 0, 0);\n"
                                       "color: rgb(255, 170, 127);")
        self.lbl_Rigth_3.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Rigth_3.setObjectName("lbl_Rigth_3")
        self.verticalLayout_13.addWidget(self.lbl_Rigth_3,1)
        self.verticalLayout_19 = QtWidgets.QVBoxLayout()
        self.verticalLayout_19.setObjectName("verticalLayout_19")
        self.lbl_Rigth_Image_3 = QtWidgets.QLabel(self)
        self.lbl_Rigth_Image_3.setText("")
        self.lbl_Rigth_Image_3.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Rigth_Image_3.setObjectName("lbl_Rigth_Image_3")
        self.verticalLayout_19.addWidget(self.lbl_Rigth_Image_3)
        self.verticalLayout_13.addLayout(self.verticalLayout_19,9)
        self.horizontalLayout_6.addLayout(self.verticalLayout_13)
        self.gridLayout_2.addLayout(self.horizontalLayout_6, 2, 0, 1, 1)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.verticalLayout_8 = QtWidgets.QVBoxLayout()
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.lbl_Left_1 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_Left_1.setFont(font)
        self.lbl_Left_1.setStyleSheet("background-color: rgb(0, 0, 0);\n"
                                      "color: rgb(255, 170, 127);")
        self.lbl_Left_1.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Left_1.setObjectName("lbl_Left_1")
        self.verticalLayout_8.addWidget(self.lbl_Left_1,1)
        self.verticalLayout_14 = QtWidgets.QVBoxLayout()
        self.verticalLayout_14.setObjectName("verticalLayout_14")
        self.lbl_Left_Image_1 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_Left_Image_1.setFont(font)
        self.lbl_Left_Image_1.setText("")
        #self.lbl_Left_Image_1.setPixmap(QtGui.QPixmap("CHKIMAGE/POWER_LED.png"))
        self.lbl_Left_Image_1.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Left_Image_1.setObjectName("lbl_Left_Image_1")
        self.verticalLayout_14.addWidget(self.lbl_Left_Image_1)
        self.verticalLayout_8.addLayout(self.verticalLayout_14,9)
        self.horizontalLayout_5.addLayout(self.verticalLayout_8)
        self.verticalLayout_9 = QtWidgets.QVBoxLayout()
        self.verticalLayout_9.setObjectName("verticalLayout_9")
        self.lbl_Rigth_1 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_Rigth_1.setFont(font)
        self.lbl_Rigth_1.setStyleSheet("background-color: rgb(0, 0, 0);\n"
                                       "color: rgb(255, 170, 127);")
        self.lbl_Rigth_1.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Rigth_1.setObjectName("lbl_Rigth_1")
        self.verticalLayout_9.addWidget(self.lbl_Rigth_1,1)
        self.verticalLayout_15 = QtWidgets.QVBoxLayout()
        self.verticalLayout_15.setObjectName("verticalLayout_15")
        self.lbl_Rigth_Image_1 = QtWidgets.QLabel(self)
        self.lbl_Rigth_Image_1.setText("")
        #self.lbl_Rigth_Image_1.setPixmap(QtGui.QPixmap("CHKIMAGE/LAN_LED.png"))
        self.lbl_Rigth_Image_1.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Rigth_Image_1.setObjectName("lbl_Rigth_Image_1")
        self.verticalLayout_15.addWidget(self.lbl_Rigth_Image_1)
        self.verticalLayout_9.addLayout(self.verticalLayout_15,9)
        self.horizontalLayout_5.addLayout(self.verticalLayout_9)
        self.gridLayout_2.addLayout(self.horizontalLayout_5, 0, 0, 1, 1)
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.verticalLayout_11 = QtWidgets.QVBoxLayout()
        self.verticalLayout_11.setObjectName("verticalLayout_11")
        self.lbl_Left_2 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_Left_2.setFont(font)
        self.lbl_Left_2.setStyleSheet("background-color: rgb(0, 0, 0);\n"
                                      "color: rgb(255, 170, 127);")
        self.lbl_Left_2.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Left_2.setObjectName("lbl_Left_2")
        self.verticalLayout_11.addWidget(self.lbl_Left_2,1)
        self.verticalLayout_16 = QtWidgets.QVBoxLayout()
        self.verticalLayout_16.setObjectName("verticalLayout_16")
        self.lbl_Left_Image_2 = QtWidgets.QLabel(self)
        self.lbl_Left_Image_2.setText("")
        self.lbl_Left_Image_2.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Left_Image_2.setObjectName("lbl_Left_Image_2")
        self.verticalLayout_16.addWidget(self.lbl_Left_Image_2)
        self.verticalLayout_11.addLayout(self.verticalLayout_16,9)
        self.horizontalLayout_7.addLayout(self.verticalLayout_11)
        self.verticalLayout_10 = QtWidgets.QVBoxLayout()
        self.verticalLayout_10.setObjectName("verticalLayout_10")
        self.lbl_Rigth_2 = QtWidgets.QLabel(self)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.lbl_Rigth_2.setFont(font)
        self.lbl_Rigth_2.setStyleSheet("background-color: rgb(0, 0, 0);\n"
                                       "color: rgb(255, 170, 127);")
        self.lbl_Rigth_2.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Rigth_2.setObjectName("lbl_Rigth_2")
        self.verticalLayout_10.addWidget(self.lbl_Rigth_2,1)
        self.verticalLayout_17 = QtWidgets.QVBoxLayout()
        self.verticalLayout_17.setObjectName("verticalLayout_17")
        self.lbl_Rigth_Image_2 = QtWidgets.QLabel(self)
        self.lbl_Rigth_Image_2.setText("")
        self.lbl_Rigth_Image_2.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_Rigth_Image_2.setObjectName("lbl_Rigth_Image_2")
        self.verticalLayout_17.addWidget(self.lbl_Rigth_Image_2)
        self.verticalLayout_10.addLayout(self.verticalLayout_17,9)
        self.horizontalLayout_7.addLayout(self.verticalLayout_10)
        self.gridLayout_2.addLayout(self.horizontalLayout_7, 1, 0, 1, 1)
        self.verticalLayout.addLayout(self.gridLayout_2,7)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.verticalLayout_21 = QtWidgets.QVBoxLayout()
        self.verticalLayout_21.setObjectName("verticalLayout_21")
        self.groupBox = QtWidgets.QGroupBox(self)
        font = QtGui.QFont()
        font.setPointSize(14)
        self.groupBox.setFont(font)
        self.groupBox.setAlignment(QtCore.Qt.AlignCenter)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setStyleSheet("background-color: rgb(0, 0, 0);\n"
                                 "color: rgb(255, 255, 127);")
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout_3.addWidget(self.label, 0, 0, 1, 1)
        self.pushButton = QtWidgets.QPushButton(self.groupBox)
        font = QtGui.QFont()
        font.setPointSize(14)
        self.pushButton.setFont(font)
        self.pushButton.setStyleSheet("background-color: rgb(85, 255, 127);\n"
                                      "")
        self.pushButton.setObjectName("pushButton")
        self.gridLayout_3.addWidget(self.pushButton, 1, 0, 1, 1)
        self.verticalLayout_21.addWidget(self.groupBox)
        self.verticalLayout_2.addLayout(self.verticalLayout_21)
        self.verticalLayout.addLayout(self.verticalLayout_2,2)
        self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)

        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self)
        self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowCloseButtonHint)  # 只显示最小化按钮和关闭按钮

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.setWindowTitle(_translate("Form", "Check Indicator Light Information"))
        self.label_2.setText(_translate("Form", "控制过程"))
        self.lbl_CurrentSwTest.setText(_translate("Form", "Wait..."))
        self.label_6.setText(_translate("Form", "测试项目"))
        self.label_7.setText(_translate("Form", "功能名称"))
        self.lbl_ItemName.setText(_translate("Form", "N/A"))
        self.label_10.setText(_translate("Form", "测试项"))
        self.lbl_TestItem.setText(_translate("Form", "N/A"))
        self.lbl_Left_3.setText(_translate("Form", "?????"))
        self.lbl_Rigth_3.setText(_translate("Form", "?????"))
        self.lbl_Left_1.setText(_translate("Form", "?????"))
        self.lbl_Rigth_1.setText(_translate("Form", "?????"))
        self.lbl_Left_2.setText(_translate("Form", "?????"))
        self.lbl_Rigth_2.setText(_translate("Form", "?????"))
        self.groupBox.setTitle(_translate("Form", "【人机交互提示醒】"))
        self.label.setText(_translate("Form", "请依照界面所示示意图仔细核对,确保产品各个区域的指示灯显示状态准确无误!!"))
        self.pushButton.setText(_translate("Form", "点击确认PASS"))

    # 更新测试参数json,itemName:项目名称,readValue:读取值,testResult:测试结果
    def UpdateJsonTestArgs(self, itemName, readValue, testResult):
        try:
            updateTestArgs = []  # 更新的测试参数
            self.testArgs = self.ReadJsonInfo('./Conf/TestArgs.json')
            for js in self.testArgs:
                if itemName in js['ItemName']:
                    js['Read'] = readValue  # 读取的值
                    js['TestResult'] = testResult  # 测试结果
                    updateTestArgs.append(js)
                else:
                    updateTestArgs.append(js)
            with open("./Conf/TestArgs.json", "w") as write_file:
                json.dump(updateTestArgs, write_file)
            return True
        except Exception as e:
            self.ShowLog("Read TestArgs.json ItemName:" + itemName + " Info Err:" + str(e), False)
            #sys.exit(1)

    # 启动线重脚本
    def TestThread(self):
        pass
        # self.t_autoplay=Thread(target=self.Test)
        # self.t_autoplay.start()

    # 读取项目参数信息,itemName:项目名称
    def ReadJsonTestArgs(self, itemName):
        try:
            # print('self.testArgs:', self.testArgs)
            self.testArgs = self.ReadJsonInfo('./Conf/TestArgs.json')

            for js in self.testArgs:
                if itemName in js['ItemName']:
                    self.testStandardArgs = js['Standard']
                    return True
            self.ShowLog('Read TestArgs.json ItemName:' + itemName + ' Info Is Empty!!', False)
            sys.exit(1)
        except Exception as e:
            self.ShowLog("Read TestArgs.json ItemName:" + itemName + " Info Err:" + str(e), False)
            sys.exit(1)

    # 读取json信息
    def ReadJsonInfo(self, fileName):
        try:
            if os.path.exists(fileName):
                f = open(fileName, 'r', encoding='utf-8')
            return json.loads(f.read())
        except Exception as e:
            self.ShowLog("Read " + fileName + " Err:" + str(e), False)
            #sys.exit(1)

    # 手动关闭窗口
    def closeEvent(self, event):
        # 告知线程停止运行
        sys.exit(1)

        # 定义一个函数使得函数窗口居中显示

    def Center(self):
        # 获取屏幕尺寸
        screen_geometry = app.desktop().availableGeometry()
        # 计算窗口居中位置
        x = (screen_geometry.width() - self.width()) // 2
        y = (screen_geometry.height() - self.height()) // 2
        # 设置窗口位置
        self.move(x, y)

    # 打印的信息
    def ShowLog(self, log, isPass):
        try:
            if isPass == True:
                self.label.setStyleSheet("background-color: rgb(85, 255, 127);color:green;")
                self.logger.info(str(log))
                self.label.setText("TEST PASS")
            else:
                self.label.setStyleSheet("background-color: rgb(85, 255, 127);color: red;")
                self.logger.error(str(log))
                self.llabel.setText(log)
        except Exception as e:
            print("\033[1;31m" + str(e) + " \033[0m")
            # sys.exit(1)

if __name__=='__main__':
    app=QApplication(sys.argv)
    win=Ui_Form()
    win.Center()  # 居中
    win.show()
    #win.start_realtime_audio_processing()  # 启动实时音频处理
    sys.exit(app.exec_())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1430671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ICA:独立成分分析

1.意义 两个假设:一个是假设源信号是相互统计独立的,另一个是假设己知源信号的统计分布特征。 另一个假设是信号的非高斯性,现实世界的许多信号,诸如绝大多数的语音信号和图像信号即是服从非高斯分布的这个假设的可应用性,带来了独立成分分析的重要特征,即实际信号的…

N-142基于springboot,vue停车场管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本项目分为普通用户和管理员…

Flutter实现轮播图功能

一、在pubspec.yaml中添加: dependencies:# 轮播图card_swiper: ^3.0.1card_swiper: ^3.0.1,要获取最新版本:https://pub-web.flutter-io.cn/packages/card_swiper/versions,这个里面有文档可以看,如下图:…

创建一个Vue项目(含npm install卡住不动的解决)

目录 1 安装Node.js 2 使用命令提示符窗口创建Vue 2.1 打开命令提示符窗口 2.2 初始Vue项目 2.2.1 npm init vuelatest 2.2.2 npm install 3 运行Vue项目 3.1 命令提示符窗口 3.2 VSCode运行项目 1 安装Node.js 可以看我的这篇文章《Node.js的安装》 2 使用命令提示…

Pytorch学习02_TensorBoard使用01

更换编辑器 找到自己的Anaconda安装路径下envs\pytorch01中的oython.exe,pytorch01是笔者自己创建的pytorch环境名 选择好后,点击确定 点击 “应用”,再点击“确定” 在pytorch环境下安装tensorboard pip install pytorch 安装结束 writer.ad…

css1文本属性

一.颜色(color)(一般用16进制) 二.对齐(text-align) 三.装饰(text-decoration) 四.缩进(text-indent)(一般用2em)(有单位)…

Android开发--实时监测系统+部署故障诊断算法

0.项目整体思路介绍: 搭建无人装备模拟实验平台,使用采集器对数据进行采集,通过网络通信Udp协议发送到安卓端,安卓端作界面显示,算法使用matlab仿真后,用C语言实现。将采集器采集到的数据经过处理后训练&a…

docker入门教程之将应用程序容器化

将应用程序容器化 在本指南的其余部分中,您将使用在 Node.js 上运行的简单待办事项列表管理器。如果您不熟悉 Node.js,请不要担心。本指南不需要任何 JavaScript 经验。 先决条件 您已安装最新版本的 Docker Desktop。您已经安装了 Git 客户端。您可以…

树莓派与Win11通信【一对一】(四)

树莓派与Win11通信【一对一】(四) 树莓派与Win11通信【一对一】(四)的代码优化版, 最近给代码添加了打开摄像头与否的验证,以及文件的保存,定时拍摄 1.Server端 import socket import time …

解决浏览器端 globalThis is not defined 报错

解决浏览器端 globalThis is not defined 报错 前言解决办法&#xff1a; 前言 在使用低版本火狐浏览器出现报错globalThis is not defined 解决办法&#xff1a; 在vue的index.html 中添加 this.globalThis || (this.globalThis this) <head><script>this.g…

vue3-自定义指令

自定义指令 vue 除了内置的制指令&#xff08;v-model v-show 等&#xff09;之外&#xff0c;还允许我们注册自定义的指令。 vue 复用代码的方式&#xff1a; 组件&#xff1a;主要是构建模块。 组合式函数&#xff1a;侧重有状态的逻辑。 自定义指令&#xff1a;主要是为…

day10笔记

API 显示->索引->搜索框输入->回车查看信息 字符串 直接赋值进串池(会先找,有复用) new出来的在堆里面 字符串比较 ""引用数据类型比较的是地址值 一模一样的比较 忽略大小写的比较 Scanner输入的数据是new出来的 遍历字符串 public class StringDe…

【ELK】logstash快速入门

1.概述 1.1.什么是logstash&#xff1f; 之前我们聊了es&#xff0c;并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的&#xff0c;然后结合kibana对日志做一些可视化的工作。既然要收集日志&#xff0c;就面临着一个问题&#xff1a; 各个系统的…

微信小程序(三十三)promise异步写法

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.promise异步与普通异步的写法区别 2.promise异步的优势 源码&#xff1a; index.wxml <view class"preview" bind:tap"onChoose"><image src"{{avatar}}" mode"…

Python—数据可视化Seaborn大全:参数详解与实战案例全解析【第52篇—python:Seaborn大全】

文章目录 Seaborn库常用绘图详解与实战引言安装与导入一、散点图参数说明实战案例 二、直方图参数说明实战案例 三、线性关系图参数说明实战案例 四、热力图参数说明实战案例 五、分布图参数说明实战案例 六、箱线图参数说明实战案例 七、联合分布图参数说明实战案例 八、小提琴…

计算机设计大赛 深度学习 机器视觉 人脸识别系统 - opencv python

文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习 机器视觉 人脸识别系统 该项目…

Elasticsearch(ES) 创建带有分词器规则的索引

上文 Elasticsearch(ES) 下载添加IK分词器 带大家 下载 并使用了 IK 分词器 我们先启动 ES 服务 然后 我们来说 IK分词器 怎么用 设置分词器 我们还是要发put请求 创建索引时 通过参数设置 这里 我们put请求 类型要换成 json的 我们先加一个这样的模板 {"mappings&quo…

如何把vue项目打包成桌面程序 electron-builder

引入 我们想要把我们写的vue项目,打包成桌面程序&#xff0c;我们需要使用electron-builder这个库 如何使用 首先添加打包工具 vue add electron-builder 选择最新版本 下载完毕 我们可以看到我们的package.json中多了几行 electron:build&#xff1a;打包我们的可执行程序 e…

【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…

#从零开始# 在深度学习环境中,如何用 pycharm配置使用 pipenv 虚拟环境

为Python项目创建虚拟环境 在深度学习环境和一般python环境中安装pipenv基本一致&#xff0c;只需要确认好pipenv指定的python版本即可,安装pipenv前&#xff0c;可以通过python --version来确认安装版本 快捷键&#xff1a;crtl alt S 查看interpreter&#xff0c;查看所有…