main
zcwBit 2 years ago
parent f88125f49d
commit 5a18170519

@ -7,6 +7,7 @@ class AreaSettingWidget(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.initUI()
def initUI(self):
layout = QFormLayout()
varType = QComboBox()
@ -19,6 +20,10 @@ class AreaSettingWidget(QDialog):
channelBytes = QLineEdit()
channelBytes.setObjectName('channelBytes')
layout.addRow('协议类型:', varType)
@ -59,6 +64,11 @@ class AreaSettingWidget(QDialog):
else:
self.accept() # 所有输入都是数字且不为空时接受对话框
def dataTypeTranslate(self, order):
self.dataTypeDict = {'不转换': 'ABCD', '字节转换': 'DCBA', '字转换': 'CDAB', '字转换': 'BADC'}
return self.dataTypeDict[order]
if __name__ == '__main__':
app = QApplication(sys.argv)
window = AreaSettingWidget()

@ -44,15 +44,20 @@ class MainWindow(QMainWindow):
self.addToolBar(self.toolbar)
# self.setWindowState(self.windowState() | QtCore.Qt.WindowMaximized)
self.action1 = QAction("添加设备", self)
self.action1.setObjectName("action1")
self.action1.triggered.connect(self.createDeciveWidget)
self.action2 = QAction("开始通讯", self)
self.action2.setObjectName("action2")
self.action2.triggered.connect(self.startProtocol)
self.addDiviceBtn = QAction("添加设备", self)
self.addDiviceBtn.setObjectName("addDiviceBtn")
self.addDiviceBtn.triggered.connect(self.createDeciveWidget)
self.toolbar.addAction(self.action1)
self.toolbar.addAction(self.action2)
self.startProtocolBtn = QAction("开始通讯", self)
self.startProtocolBtn.setObjectName("startProtocolBtn")
self.startProtocolBtn.triggered.connect(self.startProtocol)
# self.loadProjectBtn = QAction('导入工程', self)
# self.loadProjectBtn.setObjectName("loadProjectBtn")
# self.loadProjectBtn.triggered.connect(self.loadProject)
self.toolbar.addAction(self.addDiviceBtn)
self.toolbar.addAction(self.startProtocolBtn)
self.mdi_area = QMdiArea()
# self.scrollArea = QScrollArea()
@ -97,7 +102,7 @@ class MainWindow(QMainWindow):
horizontalLayout.addWidget(newbtn)
horizontalLayout.addItem(self.horizontalSpacer)
horizontalLayout.addWidget(delbth)
# horizontalLayout.addWidget(delbth)
newbtn.clicked.connect(lambda: self.newAreaWidget(sub_window))
delbth.clicked.connect(lambda: self.delAreaWidget(sub_window))
@ -142,6 +147,7 @@ class MainWindow(QMainWindow):
channelNums = area["nums"]
channelBytes = area["bytes"]
areaID = area['id']
if masterSlaveModel == '主站':
self.addAreaWidget(deviceName, number, channelNums, channelBytes, varType, layout, areaID)
else:
@ -202,28 +208,33 @@ class MainWindow(QMainWindow):
areaLabel2 =QLabel('0')
areaLineEdit = QLineEdit('0')
editbtn = QPushButton('强制')
order = QComboBox()
order.addItems(['不转换', '字节转换', '字转换', '字内转换'])
layout.addWidget(areaLabel, (i + number)//2, (i + number) % 2)
layout.addWidget(areaLabel2, (i + number)//2, (i + number) % 2 + 1 )
layout.addWidget(areaLineEdit, (i + number)//2, (i + number) % 2 + 2 )
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 3)
layout.addWidget(order, (i + number)//2, (i + number) % 2 + 3)
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 4)
editbtn.clicked.connect(lambda checked, btn=editbtn: self.forceEdit(btn))
widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit])
widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit, order])
else:
areaLabel = QLabel(varType + str(i + 1) + ": " + channelByte + 'Byte')
areaLabel2 = QLabel('0')
areaLineEdit = QLineEdit('0')
editbtn = QPushButton('强制')
layout.addWidget(areaLabel, (i + number) // 2, (i + number) % 2 + 3)
layout.addWidget(areaLabel2, (i + number) // 2, (i + number) % 2 + 4)
layout.addWidget(areaLineEdit, (i + number) // 2, (i + number) % 2 + 5)
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 6)
order = QComboBox()
order.addItems(['不转换', '字节转换', '字转换', '字内转换'])
layout.addWidget(areaLabel, (i + number) // 2, (i + number) % 2 + 4)
layout.addWidget(areaLabel2, (i + number) // 2, (i + number) % 2 + 6)
layout.addWidget(areaLineEdit, (i + number) // 2, (i + number) % 2 + 6)
layout.addWidget(order, (i + number)//2, (i + number) % 2 + 7)
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 8)
editbtn.clicked.connect(lambda checked, btn=editbtn: self.forceEdit(btn))
widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit])
widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit, order])
if not self.areaDict.get(deviceName):
self.areaDict[deviceName] = [widgetList]
@ -236,8 +247,8 @@ class MainWindow(QMainWindow):
def delAreaWidget(self, subWindow):
subwindow = subWindow
deviceName = sub_window.windowTitle()
areaLayout = sub_window.widget().widget().layout().itemAt(1).widget().layout()
deviceName = subwindow.windowTitle()
areaLayout = subwindow.widget().widget().layout().itemAt(1).widget().layout()
if self.nowValue:
@ -307,8 +318,13 @@ class MainWindow(QMainWindow):
for widgets in area:
if btn in widgets:
widgets[4].setText(widgets[5].text())
forceValue
order = self.dataTypeTranslate(widgets[6].currentText())
print(order)
def dataTypeTranslate(self, order):
self.dataTypeDict = {'不转换': 'ABCD', '字节转换': 'DCBA', '字转换': 'CDAB', '字内转换': 'BADC'}
return self.dataTypeDict[order]
# for item in self.nowValue:
# if btn in item:
# item[4].setText(item[5].text())
@ -353,6 +369,7 @@ class AreaQMdiSubWindow(QMdiSubWindow):
if __name__ == '__main__':
app = QApplication(sys.argv)
Client.initDB()

@ -154,6 +154,7 @@ class Devices():
"type": type,
"nums": nums,
"bytes": bytes,
}])
else:
jsonCon = json.loads(DeviceDB.getByName(deviceName=deviceName).areaJson)
@ -163,6 +164,7 @@ class Devices():
"type": type,
"nums": nums,
"bytes": bytes,
})
areaJson = json.dumps(jsonCon)
DeviceDB.update(areaJson=areaJson).where(DeviceDB.deviceName == deviceName).execute()

Loading…
Cancel
Save