main
parent 325af1b384
commit edd00be72e

@ -10,7 +10,7 @@ from utils.DBModels.DeviceParModels import *
from utils import Globals from utils import Globals
from UI.LoadingDataWidget import LoadingDataWidget from UI.LoadingDataWidget import LoadingDataWidget
from model.ProjectModel.BlockManage import BlockManage, BlockType from model.ProjectModel.BlockManage import BlockManage, BlockType, TBType
@ -61,7 +61,7 @@ class DynamicAddBlock(QHBoxLayout):
self.buttonlist = [] self.buttonlist = []
self.blockViewlist = [] self.blockViewlist = []
self.tbList = ['PressureTranslationBlock', 'TemperatureTranslationBlock', 'LevelTranslationBlock', 'FlowTranslationBlock'] #存放四个转换块 self.tbList = ['PressureTranslationBlock', 'TemperatureTranslationBlock', 'LevelTranslationBlock', 'FlowTranslationBlock'] #存放四个转换块
self.enumList = [BlockType.TB.pressureTB, BlockType.TB.tempTB, BlockType.TB.levelTB, BlockType.TB.flowTB] self.enumList = [TBType.pressureTB, TBType.tempTB, TBType.levelTB, TBType.flowTB]
self.initUI() self.initUI()
def initUI(self): def initUI(self):
@ -150,7 +150,24 @@ class DynamicAddBlock(QHBoxLayout):
self.parameStackWidget.setCurrentIndex(stackIndex) self.parameStackWidget.setCurrentIndex(stackIndex)
def deleteLater(self):
while self.count():
item = self.takeAt(0)
widget = item.widget()
if widget:
widget.deleteLater()
layout = item.layout()
if layout:
layout.deleteLater()
if self.parameStackWidget:
while self.parameStackWidget.count():
widget = self.parameStackWidget.widget(0)
self.parameStackWidget.removeWidget(widget)
widget.deleteLater()
self.parameStackWidget.deleteLater()
super().deleteLater()
class BlockParameterManageWidget(QWidget): class BlockParameterManageWidget(QWidget):
@ -162,7 +179,7 @@ class BlockParameterManageWidget(QWidget):
def initUI(self): def initUI(self):
self.mainlayout = QVBoxLayout() self.mainlayout = QVBoxLayout()
self.settingLayout = QHBoxLayout() self.settingLayout = QHBoxLayout()
self.deviceAddressLabel = QLabel('从站地址') self.deviceAddressLabel = QLabel('从站地址')
self.deviceAddressLabel.setObjectName('deviceAddressLabel') self.deviceAddressLabel.setObjectName('deviceAddressLabel')
@ -203,33 +220,56 @@ class BlockParameterManageWidget(QWidget):
self.setLayout(self.mainlayout) self.setLayout(self.mainlayout)
def loadBlackData(self): def loadBlackData(self):
address = self.deviceAddressEdit.text() if self.initUIstat:
# print(address) address = self.deviceAddressEdit.text()
if address: # print(address)
pattern = re.compile(r'^(?:[1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-5])$') if address:
match = pattern.match(address) pattern = re.compile(r'^(?:[1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-5])$')
if not match: match = pattern.match(address)
QMessageBox.warning(self, '提示', '请输入1 - 125。') if not match:
QMessageBox.warning(self, '提示', '请输入1 - 125。')
return
if self.initUIstat:
self.splitter.deleteLater()
self.widget.deleteLater()
self.splitter = QSplitter()
self.blockManage = BlockManage(int(address))
Globals.setValue('blockManage', self.blockManage)
blocklist = self.blockManage.getBlockNums()
self.blockLayout = DynamicAddBlock(blocklist)
self.settingLayout.addLayout(self.blockLayout, 7)
self.settingLayout.addWidget(self.splitter, 11)
self.mainlayout.addWidget(self.blockLayout.parameStackWidget, 20)
self.initUIstat = False
else:
reply = QMessageBox.question(self.parent(),
'警告',
"请输入从站地址",
QMessageBox.Yes)
return return
if self.initUIstat: else:
reply = QMessageBox.question(self, '确定', '确定更换站地址吗?',
QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
self.blockLayout.deleteLater()
self.splitter.deleteLater() self.splitter.deleteLater()
self.widget.deleteLater() self.splitter = QSplitter()
self.blockManage = BlockManage(int(address))
Globals.setValue('blockManage', self.blockManage)
blocklist = self.blockManage.getBlockNums() blocklist = self.blockManage.getBlockNums()
self.blockLayout = DynamicAddBlock(blocklist) self.blockLayout = DynamicAddBlock(blocklist)
self.settingLayout.addLayout(self.blockLayout, 7) self.settingLayout.addLayout(self.blockLayout, 7)
self.settingLayout.addWidget(QSplitter(), 11) self.settingLayout.addWidget(self.splitter, 11)
self.mainlayout.addWidget(self.blockLayout.parameStackWidget, 20) self.mainlayout.addWidget(self.blockLayout.parameStackWidget, 20)
self.initUIstat = False else:
else: return
reply = QMessageBox.question(self.parent(),
'警告',
"请输入从站地址",
QMessageBox.Yes)
return
def refreshData(self): def refreshData(self):
if self.initUIstat:
reply = QMessageBox.question(self.parent(),
'警告',
"请先连接设备",
QMessageBox.Yes)
return
self.loadingDataWidget = LoadingDataWidget() self.loadingDataWidget = LoadingDataWidget()
self.loadingDataWidget.loadData() self.loadingDataWidget.loadData()
blockView = self.blockLayout.parameStackWidget.currentWidget() blockView = self.blockLayout.parameStackWidget.currentWidget()
@ -237,8 +277,8 @@ class BlockParameterManageWidget(QWidget):
model = blockView.model model = blockView.model
model.updateColumn(5, '查询中sdadadsda\r\nsdasdsasasad\r\nasdsadsad...') model.updateColumn(5, '查询中sdadadsda\r\nsdasdsasasad\r\nasdsadsad...')
blockName = blockView.blockType blockName = blockView.blockType
blcoknumber = blockView.blcoknumber + 1 blcokIndex = blockView.blcokIndex
print(blockName, blcoknumber)

@ -208,14 +208,20 @@ class VarButtonDelegate(QItemDelegate):
def refreshData(self): def refreshData(self):
sender = self.sender() sender = self.sender()
model = self.parent().model blockView = self.parent()
# index = model.datas[sender.index[0]][0] model = blockView.model
# print(index, self.parent().dbModel.__name__, self.parent().blcoknumber + 1) index = model.datas[sender.index[0]][0]
blockName = blockView.blockType
blcokIndex = blockView.blcokIndex
print(blockName, blcokIndex, index)
self.loadingDataWidget = LoadingDataWidget() self.loadingDataWidget = LoadingDataWidget()
self.loadingDataWidget.loadData() self.loadingDataWidget.loadData()
self.parent().resizeHeader() self.parent().resizeHeader()
class ComboBoxDelegate(QStyledItemDelegate): class ComboBoxDelegate(QStyledItemDelegate):
def __init__(self, comboxIndex, parent=None): def __init__(self, comboxIndex, parent=None):
super(ComboBoxDelegate, self).__init__(parent) super(ComboBoxDelegate, self).__init__(parent)
@ -252,5 +258,6 @@ class ComboBoxDelegate(QStyledItemDelegate):
editor.setGeometry(option.rect) editor.setGeometry(option.rect)
def changeModel(self, index): def changeModel(self, index):
print(index,111) # print(index,111)
pass

@ -29,10 +29,10 @@ class ParamsVHeader(QHeaderView):
class ParmView(QTableView): class ParmView(QTableView):
def __init__(self, dbModel = None, blcoknumber = None, blockType = None): def __init__(self, dbModel = None, blcokIndex = None, blockType = None):
super().__init__() super().__init__()
self.dbModel = dbModel self.dbModel = dbModel
self.blcoknumber = blcoknumber self.blcokIndex = blcokIndex
self.blockType = blockType self.blockType = blockType
self.setHeader() self.setHeader()
self.setupUi() self.setupUi()
@ -42,7 +42,7 @@ class ParmView(QTableView):
self.setItemDelegateForColumn(6, VarButtonDelegate(self)) self.setItemDelegateForColumn(6, VarButtonDelegate(self))
self.setItemDelegateForColumn(5, ComboBoxDelegate(self)) self.setItemDelegateForColumn(5, ComboBoxDelegate(self))
self.model = VarTableModel(['相对索引', '参数名', '描述', '数据类型', '访问', '当前值', '输入值'], [], table = self) self.model = VarTableModel(['索引', '参数名', '描述', '数据类型', '访问', '当前值', '输入值'], [], table = self)
def setupUi(self): def setupUi(self):
self.setShowGrid(True) self.setShowGrid(True)

@ -9,14 +9,16 @@ from protocol.ModBus.DPV1Master import DPV1Master
from model.ProjectModel.ParmManage import Parm from model.ProjectModel.ParmManage import Parm
class BlockType(Enum): class BlockType(Enum):
class TB(Enum): TB = 1
flowTB = -1
tempTB = -2
levelTB = -3 # 物位转换块
pressureTB = -4
PB = 0 PB = 0
FB = 2 FB = 2
class TBType(Enum):
flowTB = -1
tempTB = -2
levelTB = -3 # 物位转换块
pressureTB = -4
class BlockManage(): class BlockManage():
_instance = None _instance = None
_dpv1Master = None _dpv1Master = None

Loading…
Cancel
Save