添加质量位写功能,读功能未添加

main
parent 368c62f8a9
commit 13854f143a

@ -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

Loading…
Cancel
Save