From 13854f143a44c63ab59d191ccd7313ff6caaef16 Mon Sep 17 00:00:00 2001 From: "ADMINISTRATOR\\Administrator" <951937200@qq.com> Date: Wed, 13 Nov 2024 18:11:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=A8=E9=87=8F=E4=BD=8D?= =?UTF-8?q?=E5=86=99=E5=8A=9F=E8=83=BD=EF=BC=8C=E8=AF=BB=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=9C=AA=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UI/RightAreaWidget.py | 60 +++++++++++++++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/UI/RightAreaWidget.py b/UI/RightAreaWidget.py index 628900e..cca9c14 100644 --- a/UI/RightAreaWidget.py +++ b/UI/RightAreaWidget.py @@ -1,18 +1,21 @@ import re -from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton, \ +from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton, QGridLayout, \ QHBoxLayout, QMessageBox, QSplitter, QRadioButton from UI.SoftKeyBoardEdit import SoftKeyBoardEdit class ForceButton(QPushButton): - def __init__(self, number = None, valueLabel = None, valueEdit = None): + def __init__(self, number = None, valueLabel = None, valueEdit = None, qualityValueLabel = None, \ + qualityValue = None, btnName = None): super().__init__() self.valueEdit = valueEdit self.valueLabel = valueLabel + self.qualityValueLabel = qualityValueLabel + self.qualityValue = qualityValue self.number = number self.setObjectName('forceBtn') - self.setText('强制') + self.setText(btnName) class ForceRadioButton(QRadioButton): def __init__(self, number = None): @@ -90,24 +93,45 @@ class RightAreaWidgets(QWidget): if not self.force: valueRadio.setEnabled(False) else: - forceLayout = QHBoxLayout() + forceLayout = QGridLayout() forceLayout.setContentsMargins(0, 0, 0, 0) areaMessLabel = QLabel('当前值:' ) areaMessLabel.setObjectName('areaMessLabel') areaValueLabel = QLabel('0') areaValueLabel.setObjectName('areaValueLabel') - forceLayout.addWidget(areaMessLabel) - forceLayout.addWidget(areaValueLabel) - + forceLayout.addWidget(areaMessLabel,0,0,1,1) + forceLayout.addWidget(areaValueLabel,0,1,1,1) + + #添加质量位置layout + qualityLabel = QLabel('质量位状态值:' ) + qualityLabel.setObjectName('areaMessLabel') + qualityValueLabel = QLabel('0') + qualityValueLabel.setObjectName('areaValueLabel') + forceLayout.addWidget(qualityLabel,1,0,1,1) + forceLayout.addWidget(qualityValueLabel,1,1,1,1) + if self.force: areaLineEdit = SoftKeyBoardEdit('0') areaLineEdit.setObjectName('areaLineEdit') areaLineEdit.setFixedSize(80, 33) - forceBtn = ForceButton(number = number, valueLabel=areaValueLabel, valueEdit=areaLineEdit) + + qualityLineEdit = SoftKeyBoardEdit('0') + qualityLineEdit.setObjectName('areaLineEdit') + qualityLineEdit.setFixedSize(80, 33) + qualityValue = qualityLineEdit.text() + forceBtn = ForceButton(number = number, valueLabel=areaValueLabel, valueEdit=areaLineEdit, qualityValueLabel=qualityLabel, \ + qualityValue=qualityValue, btnName = '强制') forceBtn.clicked.connect(self.AIAOForceValues) + + qualityBtn = ForceButton(number = number, valueLabel=areaValueLabel, valueEdit=areaLineEdit, qualityValueLabel=qualityLabel, \ + qualityValue=0, btnName = '故障') + qualityBtn.clicked.connect(self.AIAOForceValues) + # forceBtn.setFixedSize(50, 27) - forceLayout.addWidget(areaLineEdit) - forceLayout.addWidget(forceBtn) + forceLayout.addWidget(areaLineEdit,0,2,1,1) + forceLayout.addWidget(forceBtn,0,3,1,1) + forceLayout.addWidget(qualityLineEdit,1,2,1,1) + forceLayout.addWidget(qualityBtn,1,3,1,1) else: self.areaLabel[number] = areaValueLabel @@ -132,20 +156,22 @@ class RightAreaWidgets(QWidget): # forceLayout.setSpacing(10) return forceLayout - def wirteAreaLineEditValue(self,dataTypeAndModel, number, value, valueLabel = None): + def wirteAreaLineEditValue(self,dataTypeAndModel, number, value, qualityValue, valueLabel, qualityValueLabel): if self.areaWidget.okBtnValue: QMessageBox.warning(self, '提示', '请先保存通道信息') return if dataTypeAndModel in ['主站AO','从站AI']: pattern = re.compile(r'-?\d*\.?\d+') - match = pattern.match(value) + match = pattern.match(value, qualityValue) if not match: QMessageBox.warning(self, '提示', '请输入数字。') return else: valueLabel.setText(str(float(value))) - self.areaLineEditValue[number] = float(value) + qualityValueLabel.setText(str(float(qualityValue))) + self.areaLineEditValue[number] = [float(value), float(qualityValue)] + #判断输入值是否为0和1 elif dataTypeAndModel in ['主站DO','从站DI']: @@ -190,10 +216,16 @@ class RightAreaWidgets(QWidget): sender = self.sender() number = sender.number valueLabel = sender.valueLabel + qualityValueLabel = sender.qualityValueLabel value = sender.valueEdit.text() + qualityValue = sender.qualityValue + if qualityValue == False: + qualityValue = 0 + dataTypeAndModel = self.deviceName[-2:] + self.dataType curIndex = self.areaWidget.areaTabWidget.currentIndex() - valueList = self.wirteAreaLineEditValue(dataTypeAndModel=dataTypeAndModel, valueLabel=valueLabel,number=number, value=value) + valueList = self.wirteAreaLineEditValue(dataTypeAndModel=dataTypeAndModel, number=number, value=value, qualityValue=qualityValue, \ + valueLabel=valueLabel, qualityValueLabel=qualityValueLabel ) # print(valueList, curIndex) if valueList is None: return