|
|
|
@ -22,62 +22,12 @@ class AreaTabWidget(QMainWindow):
|
|
|
|
|
self.setCentralWidget(self.areaTabWidget)
|
|
|
|
|
|
|
|
|
|
def initAreaTab(self, dataType, order, channelBytes, deviceName = False):
|
|
|
|
|
areaTabWidget = QWidget()
|
|
|
|
|
tabIndex = self.areaTabWidget.count()
|
|
|
|
|
# 将标签页添加到 QTabWidget 中
|
|
|
|
|
self.areaTabWidget.addTab(areaTabWidget, str(tabIndex))
|
|
|
|
|
|
|
|
|
|
self.setCentralWidget(self.areaTabWidget)
|
|
|
|
|
widgetList = []
|
|
|
|
|
mainLayout = QVBoxLayout()
|
|
|
|
|
topLayout = QHBoxLayout()
|
|
|
|
|
areaLayout = QGridLayout()
|
|
|
|
|
|
|
|
|
|
dataTypeCombox = QComboBox()
|
|
|
|
|
dataTypeCombox.addItems(['AI', 'AO', 'DI', 'DO'])
|
|
|
|
|
dataTypeCombox.setCurrentIndex(dataType)
|
|
|
|
|
dataTypeCombox.setObjectName('dataTypeCombox')
|
|
|
|
|
|
|
|
|
|
orderCombox = QComboBox()
|
|
|
|
|
orderCombox.addItems(['不转换', '字节转换', '字转换', '字内转换'])
|
|
|
|
|
orderCombox.setCurrentIndex(order)
|
|
|
|
|
|
|
|
|
|
byteLineEdit = QLineEdit()
|
|
|
|
|
byteLineEdit.setPlaceholderText('字节长度')
|
|
|
|
|
byteLineEdit.setObjectName('byteLineEdit')
|
|
|
|
|
byteLineEdit.setText(channelBytes)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
okBtn = QPushButton('确定')
|
|
|
|
|
delAreaBtn = QPushButton('删除')
|
|
|
|
|
widgetList = self.addAreaTab(deviceName)
|
|
|
|
|
widgetList[0].setCurrentIndex(dataType)
|
|
|
|
|
widgetList[1].setCurrentIndex(order)
|
|
|
|
|
widgetList[2].setText(channelBytes)
|
|
|
|
|
|
|
|
|
|
topLayout.addWidget(dataTypeCombox, 1)
|
|
|
|
|
topLayout.addWidget(orderCombox, 1)
|
|
|
|
|
# topLayout.addWidget(byteLabel)
|
|
|
|
|
topLayout.addWidget(byteLineEdit, 2)
|
|
|
|
|
topLayout.addWidget(okBtn, 1)
|
|
|
|
|
topLayout.addItem(self.horizontalSpacer)
|
|
|
|
|
topLayout.addItem(self.horizontalSpacer)
|
|
|
|
|
topLayout.addItem(self.horizontalSpacer)
|
|
|
|
|
topLayout.addItem(self.horizontalSpacer)
|
|
|
|
|
topLayout.addWidget(delAreaBtn, 1)
|
|
|
|
|
|
|
|
|
|
# widget = QWidget()
|
|
|
|
|
# areaLayout.addWidget(widget)
|
|
|
|
|
mainLayout.addLayout(topLayout, 1)
|
|
|
|
|
mainLayout.addLayout(areaLayout, 9)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
delAreaBtn.clicked.connect(self.removeAreaTab)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
widgetList.extend([dataTypeCombox, orderCombox, byteLineEdit, areaLayout, deviceName])
|
|
|
|
|
|
|
|
|
|
okBtn.clicked.connect(lambda checked, btn=okBtn: self.addAreaWidget(widgetList, okBtn))
|
|
|
|
|
|
|
|
|
|
self.addAreaWidget(widgetList, okBtn)
|
|
|
|
|
|
|
|
|
|
areaTabWidget.setLayout(mainLayout)
|
|
|
|
|
self.addAreaWidget(widgetList)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def addAreaTab(self, deviceName):
|
|
|
|
@ -124,13 +74,15 @@ class AreaTabWidget(QMainWindow):
|
|
|
|
|
mainLayout.addLayout(topLayout, 1)
|
|
|
|
|
mainLayout.addLayout(areaLayout, 9)
|
|
|
|
|
|
|
|
|
|
okBtn.clicked.connect(lambda checked, btn=okBtn: self.addAreaWidget(widgetList, okBtn))
|
|
|
|
|
okBtn.clicked.connect(lambda checked, btn=okBtn: self.addAreaWidget(widgetList))
|
|
|
|
|
|
|
|
|
|
delAreaBtn.clicked.connect(self.removeAreaTab)
|
|
|
|
|
|
|
|
|
|
widgetList.extend([dataTypeCombox, orderCombox, byteLineEdit, areaLayout, deviceName])
|
|
|
|
|
areaTabWidget.setLayout(mainLayout)
|
|
|
|
|
|
|
|
|
|
return widgetList
|
|
|
|
|
|
|
|
|
|
def removeAreaTab(self):
|
|
|
|
|
# 获取 QTabWidget 并从中删除标签页
|
|
|
|
|
deviceName = self.areaTabWidget.parent().parent().parent().parent().parent().windowTitle()
|
|
|
|
@ -143,14 +95,14 @@ class AreaTabWidget(QMainWindow):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def addAreaWidget(self, widgetList, okBtn):
|
|
|
|
|
def addAreaWidget(self, widgetList):
|
|
|
|
|
dataType = widgetList[0].currentText()
|
|
|
|
|
order = self.dataTypeTranslate(widgetList[1].currentText())
|
|
|
|
|
byteLineEdit = widgetList[2].text()
|
|
|
|
|
areaLayout = widgetList[3]
|
|
|
|
|
deviceName = widgetList[4]
|
|
|
|
|
|
|
|
|
|
print(okBtn.parent(),'ssss')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if len(byteLineEdit) == 0:
|
|
|
|
|
QMessageBox.warning(self, '警告', '请输入字节长度。')
|
|
|
|
|