main
zhangxuxutm 2 years ago
parent 2fc4ea7e40
commit 956b67a822

@ -27,7 +27,7 @@ class AreaTabWidget(QMainWindow):
widgetList[1].setCurrentIndex(order)
widgetList[2].setText(channelBytes)
self.addAreaWidget(widgetList)
self.addAreaWidget(widgetList, loacl = False)
def addAreaTab(self):
@ -89,17 +89,18 @@ class AreaTabWidget(QMainWindow):
if index != -1:
self.areaTabWidget.removeTab(index)
del self.widgetList[index]
Device.delAreas(deviceName, index)
def addAreaWidget(self, widgetList):
def addAreaWidget(self, widgetList, loacl = True):
dataType = widgetList[0].currentText()
order = self.dataTypeTranslate(widgetList[1].currentText())
byteLineEdit = widgetList[2].text()
areaLayout = widgetList[3]
deviceName = self.areaTabWidget.parent().parent().parent().parent().parent().windowTitle()
widgetList = []
while areaLayout.count():
item = areaLayout.takeAt(0)
@ -112,16 +113,19 @@ class AreaTabWidget(QMainWindow):
QMessageBox.warning(self, '警告', '请输入字节长度。')
else:
# for i in range(3):
# widgetList[i].setEnabled(False)
if dataType in ['AI', 'AO']:
areaLabel = QLabel(dataType + str(1) + ": " + byteLineEdit + 'Byte' )
areaLabel2 =QLabel('0')
if '主站' in deviceName and dataType == 'AI' or ('从站' in deviceName and dataType == 'AO'):
areaLayout.addWidget(areaLabel, 0, 0)
areaLayout.addWidget(areaLabel2, 0, 1)
areaLayout.addItem(self.horizontalSpacer, 0, 4)
self.widgetList.append([areaLabel2, areaLayout])
elif '主站' in deviceName and dataType == 'AO' or ('从站' in deviceName and dataType == 'AI'):
areaLineEdit = QLineEdit('0')
editbtn = QPushButton('强制')
areaLayout.addWidget(areaLabel, 0, 0)
areaLayout.addWidget(areaLabel2, 0, 1 )
areaLayout.addWidget(areaLineEdit, 0, 2 )
@ -129,20 +133,28 @@ class AreaTabWidget(QMainWindow):
areaLayout.addItem(self.horizontalSpacer, 0, 4)
editbtn.clicked.connect(lambda checked, btn=editbtn: self.wirteValue(btn))
self.widgetList.append([areaLabel2, areaLineEdit, editbtn, areaLayout])
# else:
# areaLabel = QLabel(dataType + str(i + 1) + ": " + byteLineEdit + 'Byte')
# areaLabel2 = QLabel('0')
# areaLineEdit = QLineEdit('0')
# editbtn = QPushButton('强制')
#
# areaLayout.addWidget(areaLabel, i // 2, i % 2 + 4)
# areaLayout.addWidget(areaLabel2, i // 2, i % 2 + 6)
# areaLayout.addWidget(areaLineEdit, i // 2, i % 2 + 6)
# areaLayout.addWidget(editbtn, i // 2, i % 2 + 7)
# editbtn.clicked.connect(lambda checked, btn=editbtn: self.forceEdit(btn))
# self.widgetList.append([areaLabel2, areaLineEdit, editbtn])
else:
channelNumber = int(byteLineEdit) * 8
if '主站' in deviceName and dataType == 'DI' or (
'从站' in deviceName and dataType == 'DO'):
for i in range(int(channelNumber)):
if i % 2 == 0:
areaLabel = QLabel(dataType + str(i + 1) + ": " + byteLineEdit + 'Byte')
areaLabel2 = QLabel('0')
areaLayout.addWidget(areaLabel, i // 2, i % 2)
areaLayout.addWidget(areaLabel2, i // 2, i % 2 + 1)
widgetList.append([areaLabel2, areaLayout])
else:
areaLabel = QLabel(dataType + str(i + 1) + ": " + byteLineEdit + 'Byte')
areaLabel2 = QLabel('0')
areaLayout.addWidget(areaLabel, i // 2, i % 2 + 2)
areaLayout.addWidget(areaLabel2, i // 2, i % 2 + 3)
widgetList.append([areaLabel2, areaLayout])
self.widgetList.append(widgetList)
if '主站' in deviceName and dataType == 'DO' or (
'从站' in deviceName and dataType == 'DI'):
for i in range(int(channelNumber)):
if i % 2 == 0:
areaLabel = QLabel(dataType + str(i + 1) + ": " + byteLineEdit + 'Byte')
@ -155,7 +167,7 @@ class AreaTabWidget(QMainWindow):
areaLayout.addWidget(areaLineEdit, i // 2, i % 2 + 2)
areaLayout.addWidget(editbtn, i // 2, i % 2 + 3)
editbtn.clicked.connect(lambda checked, btn=editbtn: self.wirteValue(btn))
self.widgetList.append([areaLabel2, areaLineEdit, editbtn])
widgetList.append([areaLabel2, areaLineEdit, editbtn])
else:
areaLabel = QLabel(dataType + str(i + 1) + ": " + byteLineEdit + 'Byte')
areaLabel2 = QLabel('0')
@ -168,19 +180,24 @@ class AreaTabWidget(QMainWindow):
areaLayout.addWidget(editbtn, i // 2, i % 2 + 7)
editbtn.clicked.connect(lambda checked, btn=editbtn: self.wirteValue(btn))
self.widgetList.append([areaLabel2, areaLineEdit, editbtn])
widgetList.append([areaLabel2, areaLineEdit, editbtn])
self.widgetList.append(widgetList)
areaLayout.addItem(self.verticalSpacer, int(byteLineEdit) * 8 ,0)
index = self.areaTabWidget.currentIndex() + 1
areaId = DevicesManange.getAreaID(deviceName)
if index in areaId:
if areaId is not None and index in areaId:
if loacl:
print(index)
del self.widgetList[index - 1]
DevicesManange.updataAreas(dataType, order, byteLineEdit, deviceName, index)
else:
DevicesManange.addAreas(dataType, order, byteLineEdit, deviceName)
def dataTypeTranslate(self, order):
self.dataTypeDict = {'不转换': 'ABCD', '字节转换': 'DCBA', '字转换': 'CDAB', '字内转换': 'BADC'}
return self.dataTypeDict[order]
@ -188,9 +205,12 @@ class AreaTabWidget(QMainWindow):
def wirteValue(self, editBtn):
deviceName = self.areaTabWidget.parent().parent().parent().parent().parent().windowTitle()
index = self.areaTabWidget.currentIndex()
tabwidget = self.areaTabWidget.currentWidget()
for widget in self.widgetList:
if editBtn in widget:
value = widget[1].text()
print(deviceName, index, value)
@ -198,6 +218,7 @@ class AreaTabWidget(QMainWindow):
deviceList = []
areaIdList = []
devices = DevicesManange.getAllDevice()
for device in devices:
deviceName = device[0]
areas = device[3]
@ -207,7 +228,20 @@ class AreaTabWidget(QMainWindow):
areaId = area["id"]
areaIdList.append(areaId)
deviceList.append([deviceName, areaIdList])
print(deviceList)
index = self.areaTabWidget.currentIndex()
print(self.widgetList,'fff')
if len(self.widgetList) > 0:
if isinstance(self.widgetList[index][0], list):
widgetLists = self.widgetList[index]
for widgetList in widgetLists:
widgetList[0].setText('bbb')
else:
widgetLists = self.widgetList[index]
print(widgetLists)
widgetLists[0].setText('aaa')
if __name__ == '__main__':
app = QApplication(sys.argv)

@ -129,8 +129,12 @@ class MainWindow(QMainWindow):
def startProtocol(self):
AreaTabWidget().readValue()
for subWindow in self.subWindows:
areaTabWidget = subWindow.widget().widget().centralWidget()
tabwidget = subWindow.widget().widget().centralWidget().areaTabWidget
areaTabWidget.readValue()
# layout = areaTabWidget.widgetList[0][-1]
# print(layout)
def tran(self, dataType, order):
if dataType == 'AI':
dataType = 0

Loading…
Cancel
Save