python+PyQt5实现指示灯检查

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.mfbz.cn/a/375783.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业邮箱是什么?企业邮箱百科

本文将为大家讲解:1、企业邮箱的定义;2、企业邮箱的主要功能特点;3、企业邮箱如何选择和部署;4、企业邮箱的运营与维护;5、企业邮箱在实际工作中的应用与挑战;6、2024年最新五大企业邮箱盘点   下面提到的…

基础面试题整理6之Redis

1.Redis的应用场景 Redis支持类型:String、hash、set、zset、list String类型 hash类型 set类型 zset类型 list类型 一般用作缓存,例如 如何同时操作同一功能 2.redis是单线程 Redis服务端(数据操作)是单线程,所以Redis是并发安全的,因…

C语言的起源

1940年代,最早的开始,编程语言是机器语言,用0/1表示的、计算机能直接识别和执行的一种机器指令的集合。最早的编程方式,就是给纸带打孔或者卡片机打孔。机器语言直接与硬件沟通,极具针对性,但是非常难于理解…

解密 ARMS 持续剖析:如何用一个全新视角洞察应用的性能瓶颈?

作者:饶子昊、杨龙 应用复杂度提升,根因定位困难重重 随着软件技术发展迭代,很多企业软件系统也逐步从单体应用向云原生微服务架构演进,一方面让应用实现高并发、易扩展、开发敏捷度高等效果,但另外一方面也让软件应…

【分享】如何运用数字I/O来保护继电器

1.简述 在开关系统中,短路或者是开路的情况下,由于存在着额外的电流或者是电压,继电器往往会过载。所有的继电器都有一个最大的承载电流和热切换功率,如果超出了这个范围,会增加继电器焊接在一起的风险,从…

7.electron之渲染线程发送事件,主进程监听事件

如果可以实现记得点赞分享,谢谢老铁~ Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 将 Chromium 和 Node.js 嵌入到了一个二进制文件中,因此它允许你仅需一个代码仓库,就可以撰写支持 Windows、…

蓝桥杯省赛无忧 课件92 行列式

01 什么是行列式 02 行列式的性质 03 高斯消元求行列式

vue+vite项目,动态导入静态资源的几种方式

博主的桌面工具软件已经正式开发,获取方式: 可以关注我的小程序【中二少年工具箱】获取。(若小程序更新有延迟,可先收藏小程序) 通过下载链接 百度网盘: 链接:https://pan.baidu.com/s/15zDnSoEzJGSZLjpD…

kafka 文件存储机制

文章目录 1. 思考四个问题:1.1 topic中partition存储分布:1.2 partiton中文件存储方式:1.3 partiton中segment文件存储结构:1.4 在partition中如何通过offset查找message: 2. kafka日志存储参数配置 Topic是逻辑上的概念&#xff…

Damn Small Linux 停更16年后,2024 回归更新

Damn Small Linux(DSL) 发行版释出了最新的 2024 版本,并重新定义了什么叫“Damn Small”。 DSL 诞生于 2005 年,原本是尝试提供一个 50MB 大小的 LiveCD,2008 年开发停滞。 2024 年原作者 John Andrews 宣布 DSL 复活,在几乎所…

微软AD域替代方案,助力企业摆脱护网期间被攻击的窘境

在红蓝攻防演练(护网行动)中,AD域若被攻击成功,是其中一个扣分最多的一项内容。每年,宁盾都会接到大量AD在护网期间被攻击,甚至是被打穿的企业客户。过去,企业还会借助2FA双因子认证加强OA、Exc…

【C#】MVVM架构

示例结果展示 前提了解 MVVM是Model-View-ViewModel的缩写形式,它通常被用于WPF或Silverlight开发。 Model——可以理解为带有字段,属性的类。例如学校类,教师类,学生类等 View——可以理解为我们所看到的UI。前端界面。 View Model在View和Model之间,起到连接的作用,…

awd总结

总结: 由于是第一次参加AWD比赛,各方面经验都不足,在参赛的前几天也是疯狂搜集各种脚本、框架、工具等,同时也参考b站的视频进行学习,我发现就是还是实操才能更快的学习 我觉得就是我前期的准备工作不足,…

挑战杯 python+大数据校园卡数据分析

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于yolov5的深度学习车牌识别系统实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖&am…

#免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程

Mac电脑苹果芯片读写NTFS硬盘bash脚本 (ntfs.sh脚本内容在本文最后面) ntfs.sh脚本可以将Mac系统(苹果M系芯片)上的NTFS硬盘改成可读写的挂载方式,从而可以直接往NTFS硬盘写入数据。此脚本免费,使用过程中无需下载任何收费软件。…

Linux操作系统运维-Docker的基础知识梳理总结

Linux操作系统运维-Docker的基础知识梳理总结 docker用来解决不同开发人员软件调试时环境不统一的问题,保证了程序调试时运行环境的一致性。docker的设计理念便是一处镜像,处处运行,即通过产生用户软件,运行环境及其运行配置的统一…

复旦微 zynq amp cpu0 唤醒启动cpu1

1 配置多核amp工程,参考上一篇文章 https://blog.csdn.net/yangchenglin927/article/details/136057534 2 在cpu0的main函数中增加唤醒代码 active_cpu1(); /** helloworld.c: simple test application** This application configures UART 16550 to baud rate 96…

momentJs推导日历组件

实现效果: 代码: 引入momentjs然后封装两个函数构建出基本数据结构 import moment from moment;// 某月有多少天 export const getEndDay (m) > m.daysInMonth();/*** description 获取本月空值数据* param { Date } year { } 年度* param { Number } month …

【JS逆向六】(上)逆向模拟生成某网站的【sig】和【payload】的值 仅供学习

逆向日期:2024.02.07 使用工具:Node.js 加密方法:未知 / md5标准库 文章全程已做去敏处理!!! 【需要做的可联系我】 可使用AES进行解密处理( 直接解密即可):在线AES加解…

shell脚本基础语法(.sh ./ sh bash source shell)

Linux 之 Shell 脚本基础语法 0. 学习一门语言的顺序 1. Shell 编程概述 1.1 Shell 名词解释 在 Linux 操作系统中,Shell 是一个命令行解释器,它为用户提供了一个与操作系统内核交互的界面。用户可以通过 Shell 输入命令,然后 Shell 将这些…