From f603f2816f4889ddd1a7b45a729c7014d0acb00c Mon Sep 17 00:00:00 2001 From: "ZHANGXUXU\\95193" <951937200@qq.com> Date: Mon, 11 Mar 2024 17:01:28 +0800 Subject: [PATCH] =?UTF-8?q?0311=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Static/Area.qss | 20 +++- UI/AreaSettingWidget.py | 76 --------------- UI/AreaTabWidget.py | 96 ++++++++++++++----- UI/AreaWidget.py | 61 ------------ UI/DelAreaWidget.py | 86 ----------------- UI/DeviceDialogWidget.py | 15 +-- UI/DeviceWidget.py | 26 ++--- UI/Find Results | 6 -- ...ttonLayoutWidget.py => RightAreaWidget.py} | 3 +- model/ProjectModel/DeviceManage.py | 14 ++- utils/DBModels/DeviceModels.py | 6 +- 11 files changed, 124 insertions(+), 285 deletions(-) delete mode 100644 UI/AreaSettingWidget.py delete mode 100644 UI/AreaWidget.py delete mode 100644 UI/DelAreaWidget.py delete mode 100644 UI/Find Results rename UI/{ButtonLayoutWidget.py => RightAreaWidget.py} (99%) diff --git a/Static/Area.qss b/Static/Area.qss index 8c6a82a..8e7aadc 100644 --- a/Static/Area.qss +++ b/Static/Area.qss @@ -54,7 +54,7 @@ QPushButton#initAddDeviceButton, QPushButton#initAreaAddButton{ } -QPushButton#initAddDeviceButton:hover, QPushButton#initAreaAddButton:hover{ +QPushButton#initAddDeviceButton:hover, QPushButton#initAreaAddButton:hover, QPushButton#deviceAddButton:hover, QPushButton#addareabutton:hover{ color: #1a86d8; @@ -105,19 +105,31 @@ QLabel#dataTypeLabel, QLabel#dataOrderLabel, QLabel#byteLineLabel{ } +QLabel#pvUpperLimit, QLabel#pvLowerLimit, QLabel#pvUnit{ + + font-size: 24px; + + +} + + QLabel#areaValueLabel{ color: #0160aa; } +QLineEdit#byteLineEdit{ + font-size: 24px; + +} -QLineEdit#byteLineEdit, QLineEdit#areaLineEdit { - font-size: 28px; - +QLineEdit#areaLineEdit { + + font-size: 28px; } diff --git a/UI/AreaSettingWidget.py b/UI/AreaSettingWidget.py deleted file mode 100644 index 934aaeb..0000000 --- a/UI/AreaSettingWidget.py +++ /dev/null @@ -1,76 +0,0 @@ -from PyQt5.QtWidgets import QDialog, QFormLayout, QLineEdit, QComboBox, QDialogButtonBox, QApplication, QMessageBox -from PyQt5.QtGui import QPixmap, QIcon -from PyQt5.QtCore import Qt -import sys -import re -class AreaSettingWidget(QDialog): - def __init__(self, parent=None): - super().__init__(parent) - self.initUI() - - def initUI(self): - layout = QFormLayout() - varType = QComboBox() - varType.addItems(['AI', 'AO', 'DI', 'DO']) - varType.setObjectName('varType') - - channelNums = QLineEdit() - channelNums.setObjectName('channelNums') - - channelBytes = QLineEdit() - channelBytes.setObjectName('channelBytes') - - - - - - - - layout.addRow('协议类型:', varType) - layout.addRow('通道数:', channelNums) - layout.addRow("字节长度:", channelBytes) - - - button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) - ok_button = button_box.button(QDialogButtonBox.Ok) - ok_button.setText("确定") # 设置Ok按钮的文本 - cancel_button = button_box.button(QDialogButtonBox.Cancel) - cancel_button.setText("取消") # 设置Cancel按钮的文本 - button_box.accepted.connect(self.check_input) - button_box.rejected.connect(self.reject) - - - - layout.addRow(button_box) - self.setWindowIcon(QIcon('Static/zhjt.ico')) - self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) # 去掉标题栏的问号 - self.setLayout(layout) - self.setWindowTitle("通道配置") - - def getParameters(self): - varType = self.findChild(QComboBox, "varType").currentText() - channelNums = self.findChild(QLineEdit, "channelNums").text() - channelBytes = self.findChild(QLineEdit, "channelBytes").text() - - return varType, channelNums, channelBytes - - def check_input(self): - varType, channelNums, channelBytes = self.getParameters() - - if not channelNums or not channelBytes: - QMessageBox.warning(self, '警告', '有值未输入。') - elif not re.match(r'^[-+]?\d*\.?\d*$', channelNums) or not re.match(r'^[-+]?\d*\.?\d*$', channelBytes): - QMessageBox.warning(self, '警告', '请输入数字。') - 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() - window.show() - sys.exit(app.exec_()) \ No newline at end of file diff --git a/UI/AreaTabWidget.py b/UI/AreaTabWidget.py index 58264df..5105ff2 100644 --- a/UI/AreaTabWidget.py +++ b/UI/AreaTabWidget.py @@ -11,8 +11,8 @@ from PyQt5.QtGui import QIcon from PyQt5.QtCore import QSize from model.ProjectModel.DeviceManage import Device, DevicesManange -from UI.ButtonLayoutWidget import ButtonWidgets - +from UI.RightAreaWidget import RightAreaWidgets +from utils.DBModels.DeviceModels import DeviceDB @@ -21,7 +21,6 @@ class AreaTabWidget(QTabWidget): super().__init__() self.deviceWidget = deviceWidget self.devicesManange = self.deviceWidget.devicesManange - self.initUI() @@ -36,9 +35,9 @@ class AreaTabWidget(QTabWidget): self.addAreaButton.setObjectName('addareabutton') self.addAreaButton.setIcon(QIcon('Static/add.png')) self.addAreaButton.setFlat(True) - + self.addAreaButton.clicked.connect(self.addAreaTab) self.setCornerWidget(self.addAreaButton) - self.addAreaButton.clicked.connect(self.addAreaTab) + # self.state = True self.initWidget() #初始化界面 @@ -84,14 +83,19 @@ class AreaTabWidget(QTabWidget): self.addTab(widget,'') self.tabBar().setHidden(True) - - + def addAreaTab(self, init = False, settingValue = None): if settingValue is None: if init: self.removeTab(0) tabIndex = self.count() + #判断area右侧布局是是否添加 + if self.widget(int(tabIndex - 1)): + if not self.widget(int(tabIndex - 1)).rightAreaWidgetState: + QMessageBox.warning(self, '警告', '有值未输入。') + return + areaWidget = AreaWidget(self) self.addTab(areaWidget, '通道' + str(tabIndex + 1)) self.setCurrentIndex(tabIndex) @@ -131,12 +135,26 @@ class AreaWidget(QWidget): self.settingValue = settingValue self.state = True self.devicesManange = self.areaTabWidget.devicesManange + self.rightAreaWidgetState = False self.initUI() def initUI(self): self.mainLayout = QHBoxLayout() self.leftLayout = QGridLayout() self.rightLayout = QGridLayout() + + LimitData = self.devicesManange.getLimitData(self.areaTabWidget.deviceName) + + self.pvUpperLimit = QLabel('量程上限: {}'.format(LimitData[0])) + self.pvUpperLimit.setObjectName('pvUpperLimit') + + + self.pvLowerLimit = QLabel('量程下限: {}'.format(LimitData[1])) + self.pvLowerLimit.setObjectName('pvLowerLimit') + + self.pvUnit = QLabel('单位: {}'.format(LimitData[2])) + self.pvUnit.setObjectName('pvUnit') + self.dataTypeLabel = QLabel('数据类型:') self.dataTypeLabel.setObjectName('dataTypeLabel') @@ -178,13 +196,23 @@ class AreaWidget(QWidget): hLayout.addWidget(self.okBtn) hLayout.addWidget(self.delAreaBtn) - self.leftLayout.addWidget(self.dataTypeLabel, 0, 0, 1, 1) - self.leftLayout.addWidget(self.dataTypeCombox, 0, 1, 1, 1) - self.leftLayout.addWidget(self.dataOrderLabel,1, 0, 1, 1 ) - self.leftLayout.addWidget(self.orderCombox,1, 1, 1, 1 ) - self.leftLayout.addWidget(self.byteLineLabel,2, 0, 1, 1 ) - self.leftLayout.addWidget(self.byteLineEdit,2, 1, 1, 1 ) - self.leftLayout.addLayout(hLayout, 3, 0, 1, 2) + + # vlayout = QVBoxLayout() + # vlayout.addWidget(self.pvUpperLimit) + # vlayout.addWidget(self.pvLowerLimit) + # vlayout.addWidget(self.pvUnit) + self.leftLayout.addWidget(self.pvUpperLimit, 0, 0, 1, 2) + self.leftLayout.addWidget(self.pvLowerLimit, 1, 0, 1, 2) + self.leftLayout.addWidget(self.pvUnit,2, 0, 1, 2) + + self.leftLayout.addWidget(self.dataTypeLabel, 3, 0, 2, 1) + self.leftLayout.addWidget(self.dataTypeCombox, 3, 1, 2, 1) + self.leftLayout.addWidget(self.dataOrderLabel,4, 0, 2, 1) + self.leftLayout.addWidget(self.orderCombox,4, 1, 2, 1) + self.leftLayout.addWidget(self.byteLineLabel,5, 0, 2,1) + self.leftLayout.addWidget(self.byteLineEdit,5, 1, 2, 1) + self.leftLayout.addWidget(QSplitter(),6, 0, 2, 2) + self.leftLayout.addLayout(hLayout, 7, 0, 2, 2) # self.leftLayout.addWidget(self.delAreaBtn, 3, 1, 1, 1) @@ -202,10 +230,14 @@ class AreaWidget(QWidget): # self.deviceWidgetManage.addArea(mainLayout=mainLayout, leftLayoutWidget=leftLayoutWidgets) self.setLayout(self.mainLayout) + + + if self.settingValue is not None: self.addAreaWidget() - + self.settingValue = None + def setByteLineEditValue(self): byteLineEditValue = self.dataTypeCombox.currentText() if byteLineEditValue in ['DI','DO']: @@ -215,16 +247,13 @@ class AreaWidget(QWidget): self.byteLineEdit.setEnabled(True) def removeAreaTab(self): - # 只点击了新建去域按钮,未点击确定按钮时,直接点击删除按钮的删除情况 + # 只点击了新建区域按钮,未点击确定按钮时,直接点击删除按钮的删除情况 index = self.areaTabWidget.currentIndex() tabCount = self.areaTabWidget.count() if self.okBtn.text() == '确定': if index != -1: self.areaTabWidget.removeTab(index) - # if tabCount == 1: - # self.areaTabWidget.initWidget() - # self.state = True - + #正常点击删除按钮的情况 else: deviceName = self.areaTabWidget.deviceName @@ -241,6 +270,14 @@ class AreaWidget(QWidget): self.areaTabWidget.initWidget() self.state = True + #重新设置通道显示值 + else: + for index in range(self.areaTabWidget.count()): + self.areaTabWidget.setTabText(index, '通道{}'.format(index+1)) + + + + @@ -248,7 +285,7 @@ class AreaWidget(QWidget): def addAreaWidget(self): curIndex = self.areaTabWidget.currentIndex() #获取左侧配置布局的参数 - + areaLayout = self.rightLayout deviceName = self.areaTabWidget.deviceName @@ -262,18 +299,20 @@ class AreaWidget(QWidget): dataTypeIndex = self.settingValue[0] orderIndex = self.settingValue[1] byteLineEditIndex = self.settingValue[2] + self.dataTypeCombox.setCurrentIndex(dataTypeIndex) self.orderCombox.setCurrentIndex(orderIndex) self.byteLineEdit.setText(byteLineEditIndex) dataType = self.dataTypeCombox.currentText() order = self.dataTypeTranslate(self.orderCombox.currentText()) byteLineEdit = self.byteLineEdit.text() - + + #判断字节长度的输入是否是数字 - pattern = re.compile(r'^\d+$') + pattern = re.compile(r'^[1-7]$') match = pattern.match(byteLineEdit) if not match: - QMessageBox.warning(self, '提示', '请输入数字。') + QMessageBox.warning(self, '提示', '请输入1 - 8。') return else: #设置点击确定后无法编辑,点击编辑后才能编辑 @@ -302,11 +341,16 @@ class AreaWidget(QWidget): widget.deleteLater() #添加按钮布局 - self.buttonWidgets = ButtonWidgets(self, order = order, byteLineEdit = byteLineEdit, dataType = dataType, deviceName = deviceName) - areaLayout.addWidget(self.buttonWidgets) + self.rightAreaWidgets = RightAreaWidgets(self, order = order, byteLineEdit = byteLineEdit, dataType = dataType, deviceName = deviceName) + areaLayout.addWidget(self.rightAreaWidgets) + + + self.state = False + self.rightAreaWidgetState = True + areaId = DevicesManange.getAreaID(deviceName) if self.settingValue is not None: self.isRead = self.devicesManange.getDevice(deviceName).addArea(type = dataType, bytes = int(byteLineEdit), order = order, nums = 1) diff --git a/UI/AreaWidget.py b/UI/AreaWidget.py deleted file mode 100644 index ecce84b..0000000 --- a/UI/AreaWidget.py +++ /dev/null @@ -1,61 +0,0 @@ -from PyQt5.QtWidgets import QApplication, QMainWindow, QToolBar, QMdiArea, QAction, QInputDialog, QDialog, QFormLayout, QLineEdit, \ - QMdiSubWindow, QDialogButtonBox, QWidget, QComboBox, QTabBar, QTabWidget, QGridLayout, QLabel, QPushButton, QSpacerItem,QSizePolicy -from AreaSettingWidget import AreaSettingWidget - -import sys - -class AreaWidget(QWidget): - def __init__(self): - super().__init__() - self.initUI() - - def initUI(self): - - self.sub_window = QMdiSubWindow() # 创建一个子窗口 - self.layoutAI = QGridLayout() - - self.widget = QWidget() - self.widget.setLayout(self.layoutAI) - - self.newbtn = QPushButton('New') - self.delbtn = QPushButton('Del') - self.layoutAI.addWidget(self.newbtn, 0, 0) - self.layoutAI.addWidget(self.delbtn, 0, 1) - self.newbtn.clicked.connect(lambda: self.newArea) - self.delbtn.clicked.connect(self.delArea) - - - self.layoutAI.addWidget(self.newbtn, 0, 0, 1, 1) - - - self.layoutAI.addWidget(self.delbtn, 0, 2, 1, 1) - - self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - - self.layoutAI.addItem(self.horizontalSpacer, 0, 1, 1, 1) - - self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) - - self.layoutAI.addItem(self.verticalSpacer, 1, 0, 1, 1) - - # self.sub_window.setGeometry(100, 100, 400, 300) - self.sub_window.setWidget(self.widget) - - def newArea(self): - # print(1) - areaSettingWidget = AreaSettingWidget() - if areaSettingWidget.exec_() == QDialog.Accepted: - deviceName, proType, varType = areaSettingWidget.getParameters() - - - - def delArea(self): - pass - - -if __name__ == '__main__': - app = QApplication(sys.argv) - window = AreaWidget() - window.show() - sys.exit(app.exec_()) - diff --git a/UI/DelAreaWidget.py b/UI/DelAreaWidget.py deleted file mode 100644 index 1c5ffaf..0000000 --- a/UI/DelAreaWidget.py +++ /dev/null @@ -1,86 +0,0 @@ -from PyQt5.QtWidgets import QApplication, QMainWindow, QToolBar, QMdiArea, QAction, QInputDialog, QDialog, QFormLayout, QLineEdit, \ - QMdiSubWindow, QDialogButtonBox, QWidget, QComboBox, QTabBar, QTabWidget, QGridLayout, QLabel, QPushButton, QSpacerItem,QSizePolicy, QCheckBox, QVBoxLayout -from UI.AreaSettingWidget import AreaSettingWidget -from PyQt5.QtCore import Qt -from PyQt5.QtGui import QPixmap, QIcon -import sys - -from model.ProjectModel.DeviceManage import Device - - -class DelAreaWidget(QDialog): - def __init__(self, deviceName): - super().__init__() - self.checkbox_data ={} - self.deviceName = deviceName - self.delAreaRowAndColunm = [] - self.initUI() - - self.intType = 0 - self.foloatType = 1 - def initUI(self): - vorlayout = QVBoxLayout() #主布局 - # layout = QGridLayout() - jsonCons = Device.getAreaJson(self.deviceName) - - row = 1 - if jsonCons is None: - return - else: - for jsoncon in jsonCons: - varType = jsoncon["type"] - channelNums = jsoncon["nums"] - channelBytes = jsoncon["bytes"] - text = varType + ": " + channelBytes + 'Byte' + '数量:'+ channelNums - checkbox = QCheckBox(text) - vorlayout.addWidget(checkbox) - checkbox.stateChanged.connect(self.checkbox_state_changed) - self.checkbox_data[checkbox] = row - row += 1 - - - button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) - ok_button = button_box.button(QDialogButtonBox.Ok) - ok_button.setText("确定") # 设置Ok按钮的文本 - cancel_button = button_box.button(QDialogButtonBox.Cancel) - cancel_button.setText("取消") # 设置Cancel按钮的文本 - - button_box.accepted.connect(self.getDelAreaRowAndColunm) - button_box.rejected.connect(self.reject) - vorlayout.addWidget(button_box) - - self.setWindowIcon(QIcon('Static/zhjt.ico')) - self.setWindowTitle("删除通道") - self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)#去掉标题栏的问号 - self.setLayout(vorlayout) - - - def checkbox_state_changed(self, state): - sender = self.sender() # 获取触发信号的对象 - if isinstance(sender, QCheckBox): - if state == 2: # 选中状态 - self.delAreaRowAndColunm.append(self.checkbox_data[sender]) # 从字典中获取行列信息 - - elif state == 0: # 取消选中状态 - self.delAreaRowAndColunm.remove(self.checkbox_data[sender]) - - def getDelAreaRowAndColunm(self): - self.accept() - return self.delAreaRowAndColunm - - - - - - - -if __name__ == '__main__': - app = QApplication(sys.argv) - # Client.initDB() - window = DelAreaWidget() - - window.show() - sys.exit(app.exec_()) - - - diff --git a/UI/DeviceDialogWidget.py b/UI/DeviceDialogWidget.py index a36d797..837f85a 100644 --- a/UI/DeviceDialogWidget.py +++ b/UI/DeviceDialogWidget.py @@ -2,11 +2,12 @@ import re from PyQt5.QtWidgets import QDialog, QFormLayout, QLineEdit, QDialogButtonBox, QMessageBox from PyQt5.QtGui import QIcon from PyQt5.QtCore import Qt +from utils.DBModels.DeviceModels import DeviceDB class DeviceDialog(QDialog): - def __init__(self, parent=None): + def __init__(self,dataTypeAndModel,parent=None): super().__init__(parent) - + self.dataTypeAndModel = dataTypeAndModel self.initUI() def initUI(self): @@ -15,8 +16,6 @@ class DeviceDialog(QDialog): deviceName = QLineEdit() deviceName.setObjectName('deviceName') - - pvUpperLimit = QLineEdit() pvUpperLimit.setObjectName('pvUpperLimit') @@ -56,11 +55,15 @@ class DeviceDialog(QDialog): return deviceName, pvUpperLimit, pvLowerLimit, pvUnit def check_input(self): - deviceName, pvUpperLimit, pvLowerLimit, pvUnit = self.getParameters() - + titleName, pvUpperLimit, pvLowerLimit, pvUnit = self.getParameters() + deviceName = titleName + self.dataTypeAndModel if not pvUpperLimit or not pvLowerLimit or not pvUnit or not deviceName: QMessageBox.warning(self, '警告', '有值未输入。') return + elif DeviceDB.getByName(deviceName): + print(DeviceDB.getByName(deviceName),2343) + QMessageBox.warning(self, '警告', '设备名重复') + return elif not re.match(r'^[-+]?\d*\.?\d*$', pvUpperLimit) or not re.match(r'^[-+]?\d*\.?\d*$', pvLowerLimit): QMessageBox.warning(self, '警告', '请输入数字。') return diff --git a/UI/DeviceWidget.py b/UI/DeviceWidget.py index a4a7d41..846fdb6 100644 --- a/UI/DeviceWidget.py +++ b/UI/DeviceWidget.py @@ -17,16 +17,15 @@ class DeviceWidget(QMainWindow): def __init__(self, dockWidget, devicesManange): super().__init__() self.dockWidget = dockWidget - self.forceValues = [] self.devicesManange = devicesManange self.initUI() def initUI(self): #获取DP、PA协议和主从模式 - - self.proType = self.dockWidget.windowTitle()[0:2] - self.masterSlaveModel = self.dockWidget.windowTitle()[2:4] + self.dataTypeAndModel = self.dockWidget.windowTitle() + self.proType = self.dataTypeAndModel[0:2] + self.masterSlaveModel = self.dataTypeAndModel[2:4] self.deviceTabWidget = QTabWidget(self) @@ -56,23 +55,25 @@ class DeviceWidget(QMainWindow): QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: if index != -1: + deviceName = self.deviceTabWidget.tabText(index) + self.dockWidget.windowTitle() + print(deviceName,index,222) self.deviceTabWidget.removeTab(index) - self.devicesManange.delDevice(deviceName = self.deviceName) - DeviceDB.deleteDevice(deviceName = self.deviceName) + self.devicesManange.delDevice(deviceName = deviceName ) + DeviceDB.deleteDevice(deviceName = deviceName) else: return if self.deviceTabWidget.count() == 0: self.creatInitWidget() - - + + def addDeviceWidget(self,init = False,deviceName = None): if deviceName is None: - dialog = DeviceDialog() + dialog = DeviceDialog(self.dataTypeAndModel) if dialog.exec_() == QDialog.Accepted: - self.titleName, pvUpperLimit, pvLowerLimit, pvUnit = dialog.getParameters() - self.deviceName = self.titleName + self.dockWidget.windowTitle() - DeviceDB().addDevice(deviceName = self.deviceName, proType = self.proType , masterSlaveModel = self.masterSlaveModel) + self.titleName, pvUpperLimit, pvLowerLimit, pvUnit = dialog.getParameters() + self.deviceName = self.titleName + self.dataTypeAndModel + DeviceDB().addDevice(deviceName = self.deviceName, proType = self.proType , masterSlaveModel = self.masterSlaveModel, pvUpperLimit=pvUpperLimit, pvLowerLimit=pvLowerLimit, pvUnit=pvUnit) areaTabWidget = AreaTabWidget(self) if init: self.deviceTabWidget.removeTab(0) @@ -84,7 +85,6 @@ class DeviceWidget(QMainWindow): else: return else: - self.deviceName = deviceName self.titleName = self.deviceName[:-4] areaTabWidget = AreaTabWidget(self) diff --git a/UI/Find Results b/UI/Find Results deleted file mode 100644 index c026acb..0000000 --- a/UI/Find Results +++ /dev/null @@ -1,6 +0,0 @@ - -111111111111111111111111 - -111111111111111111111111 - - diff --git a/UI/ButtonLayoutWidget.py b/UI/RightAreaWidget.py similarity index 99% rename from UI/ButtonLayoutWidget.py rename to UI/RightAreaWidget.py index cd7c5dd..8f06712 100644 --- a/UI/ButtonLayoutWidget.py +++ b/UI/RightAreaWidget.py @@ -5,14 +5,13 @@ import re class forceButton(QPushButton): def __init__(self, number = None, valueLabel = None, valueEdit = None): super().__init__() - self.valueEdit = valueEdit self.valueLabel = valueLabel self.number = number self.setObjectName('forceBtn') self.setText('强制') -class ButtonWidgets(QWidget): +class RightAreaWidgets(QWidget): def __init__(self, areaWidget, order, byteLineEdit, dataType, deviceName): super().__init__() self.areaLineEditValue = [] diff --git a/model/ProjectModel/DeviceManage.py b/model/ProjectModel/DeviceManage.py index 0fd78b8..454a2a4 100644 --- a/model/ProjectModel/DeviceManage.py +++ b/model/ProjectModel/DeviceManage.py @@ -399,6 +399,16 @@ class DevicesManange(): return l = [] for x in devices: - l.append([x.deviceName, x.proType, x.masterSlaveModel, x.areaJson]) + l.append([x.deviceName, x.proType, x.masterSlaveModel, x.areaJson, x.pvLowerLimit, x.pvUpperLimit, x.pvUnit]) return l - + + @classmethod + def getLimitData(cls, deviceName): + try: + pvUpperLimit = DeviceDB.getByName(deviceName=deviceName).pvUpperLimit + pvLowerLimit = DeviceDB.getByName(deviceName=deviceName).pvLowerLimit + pvUnit = DeviceDB.getByName(deviceName=deviceName).pvUnit + l =[pvUpperLimit, pvLowerLimit, pvUnit] + return l + except Exception as e: + return print(e) diff --git a/utils/DBModels/DeviceModels.py b/utils/DBModels/DeviceModels.py index ae5c53b..dd39eba 100644 --- a/utils/DBModels/DeviceModels.py +++ b/utils/DBModels/DeviceModels.py @@ -50,7 +50,7 @@ class DeviceDB(BaseModel): # 添加设备 - def addDevice(self, deviceName, proType, masterSlaveModel=masterSlaveModel, areaJson=json.dumps([]), pvLowerLimit=pvLowerLimit, pvUpperLimit=pvUpperLimit, pvUnit=pvUnit): + def addDevice(self, deviceName, proType, masterSlaveModel=masterSlaveModel, areaJson=json.dumps([]), pvUpperLimit=pvUpperLimit, pvLowerLimit=pvLowerLimit, pvUnit=pvUnit): self.deviceName = deviceName self.proType = proType self.masterSlaveModel = masterSlaveModel @@ -61,8 +61,8 @@ class DeviceDB(BaseModel): self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') # print(self.createTime) self.save() - - + +