0723更新

main
zcwBit 1 year ago
parent b042f6662b
commit 0c880885b3

@ -263,7 +263,7 @@ QPushButton#parameBtn{
font-family: ".SFNSDisplay-Medium";
font-size: 17px;
font-size: 20px;
font-weight: 520;
@ -292,6 +292,18 @@ QPushButton#parameBtn:checked{
}
QPushButton#parameBtn:pressed{
font: bold;
border: none;
background-color: #04942c;
margin-bottom: -3px;
}
QPushButton#tbparameBtn{
border: none;

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

@ -1,5 +1,6 @@
import re
import qtawesome
from PyQt5.QtGui import QPixmap, QPainter
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QStyledItemDelegate, QStyle, QComboBox, QMessageBox, QPushButton,QStackedWidget, QLineEdit \
, QVBoxLayout, QHBoxLayout, QWidget, QLabel, QSplitter, QButtonGroup, QDialog
@ -15,6 +16,16 @@ from UI.EditAddressWidget import EditAddressWidget
from model.ProjectModel.BlockManage import BlockManage, BlockType, TBType
class ShowImage(QWidget):
def __init__(self, image_path):
super().__init__()
self.image_path = image_path
self.pixmap = QPixmap(self.image_path)
def paintEvent(self, event):
painter = QPainter(self)
painter.drawPixmap(self.rect(), self.pixmap)
@ -98,7 +109,7 @@ class DynamicAddBlock(QHBoxLayout):
fblockBtn.setObjectName("parameBtn")
fblockBtn.setIcon(qtawesome.icon('fa.th-large', color='#1fbb6f'))
fblockBtn.clicked.connect(lambda _, fbbtn = fblockBtn: self.switchParameterWidget(fbbtn))
# self.addWidget(fblockBtn, 3)
self.addWidget(fblockBtn, 3)
self.buttonlist.append(fblockBtn)
aiFunctionBlockView = ParmView(AIFunctionBlock, i, BlockType.FB)
self.blockViewlist.append(aiFunctionBlockView)
@ -190,32 +201,32 @@ class BlockParameterManageWidget(QWidget):
self.deviceAddressEdit.returnPressed.connect(self.loadBlackData)
self.deviceAddressEdit.setObjectName("deviceAddressEdit")
self.confirmBtn = QPushButton('确定')
self.confirmBtn.setIcon(qtawesome.icon('fa5s.check-circle', color='#1fbb6f'))
self.confirmBtn = QPushButton('连接设备')
self.confirmBtn.setIcon(qtawesome.icon('mdi.connection', color='#1fbb6f'))
self.confirmBtn.clicked.connect(self.loadBlackData)
self.confirmBtn.setObjectName("parameBtn")
self.refershDataBtn = QPushButton('加载数据')
self.refershDataBtn.setIcon(qtawesome.icon('fa5s.check-circle', color='#1fbb6f'))
self.refershDataBtn.setIcon(qtawesome.icon('mdi6.reload', color='#1fbb6f'))
self.refershDataBtn.clicked.connect(self.refreshData)
self.refershDataBtn.setObjectName("parameBtn")
self.deviceAddressSearchBtn = QPushButton('查找')
self.deviceAddressSearchBtn = QPushButton('搜索站地址')
self.deviceAddressSearchBtn.setIcon(qtawesome.icon('fa.search', color='#1fbb6f'))
self.deviceAddressSearchBtn.clicked.connect(self.searchAddress)
self.deviceAddressSearchBtn.setObjectName("parameBtn")
self.editAddressBtn = QPushButton('修改站地址')
self.editAddressBtn.setIcon(qtawesome.icon('fa.search', color='#1fbb6f'))
self.editAddressBtn.setIcon(qtawesome.icon('fa.edit', color='#1fbb6f'))
self.editAddressBtn.clicked.connect(self.editAddress)
self.editAddressBtn.setObjectName("parameBtn")
self.settingLayout.addWidget(self.deviceAddressLabel, 1)
self.settingLayout.addWidget(self.deviceAddressEdit, 1)
self.settingLayout.addWidget(self.confirmBtn, 1)
self.settingLayout.addWidget(self.refershDataBtn, 1)
self.settingLayout.addWidget(self.deviceAddressSearchBtn, 1)
self.settingLayout.addWidget(self.editAddressBtn, 1)
self.settingLayout.addWidget(self.refershDataBtn, 1)
# self.settingLayout.addLayout(self.blockLayout)
self.splitter = QSplitter()
@ -223,7 +234,7 @@ class BlockParameterManageWidget(QWidget):
self.mainlayout.addLayout(self.settingLayout,1)
self.widget = QWidget()
self.widget = ShowImage('Static/pict.png')
self.mainlayout.addWidget(self.widget, 20)
@ -237,7 +248,7 @@ class BlockParameterManageWidget(QWidget):
pattern = re.compile(r'^(?:[1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-6])$')
match = pattern.match(address)
if not match:
QMessageBox.warning(self, '提示', '请输入1 - 126。')
QMessageBox.warning(self, '提示', '请输入2 - 126。')
return
if self.initUIstat:
try:
@ -320,16 +331,8 @@ class BlockParameterManageWidget(QWidget):
newAddress = int(self.editAddressWidget.editAddressEdit.text())
self.blockManage.DPV1Master.editDevAddress(oldAddress, newAddress)
# if self.initUIstat:
# reply = QMessageBox.question(self.parent(),
# '警告',
# "请先连接设备",
# QMessageBox.Yes)
# return
def searchAddress(self):
self.searchAddressWidget = SearchAddressWidget(self.deviceAddressEdit)

@ -48,7 +48,7 @@ class VarTableModel(QAbstractTableModel):
print("列索引超出范围")
return
# for row in range(self.rowCount()):
self.datas[row][5] = value
self.datas[row][6] = value
self.table.proxy.invalidate()
# self.layoutChanged.emit() # 通知视图数据已更改
# self.dataChanged.emit()
@ -78,7 +78,7 @@ class VarTableModel(QAbstractTableModel):
return QtGui.QColor('#1A1A1A')
if role == Qt.DisplayRole or role == Qt.EditRole:
if QModelIndex.row() in self.editableList or 'w' in self.datas[QModelIndex.row()][4]:
if QModelIndex.row() in self.editableList or 'w' in self.datas[QModelIndex.row()][5]:
return self.datas[QModelIndex.row()][QModelIndex.column()]
if role != Qt.DisplayRole:
return QVariant()
@ -111,11 +111,11 @@ class VarTableModel(QAbstractTableModel):
def flags(self, index):
# if index.column() == 0:
# return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable
if index.row() in self.editableList and index.column() or index.column() == 6:
if index.row() in self.editableList and index.column() or index.column() == 7:
return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsEditable
if 'w' in self.datas[index.row()][4] and index.column() == 5:
if 'w' in self.datas[index.row()][5] and index.column() == 6:
return Qt.ItemIsEnabled | Qt.ItemIsEditable
return Qt.ItemIsEnabled
@ -133,7 +133,7 @@ class VarTableModel(QAbstractTableModel):
def updateValue(self, valueList):
for index, value in enumerate(valueList):
self.datas[index][5] = value
self.datas[index][6] = value
self.table.proxy.invalidate()
@ -164,14 +164,14 @@ class VarButtonDelegate(QItemDelegate):
refreshButton.clicked.connect(self.refreshData)
refreshButton.index = [index.row(), index.column()]
readORwirte = self.parent().model.datas[index.row()][4]
readORwirte = self.parent().model.datas[index.row()][5]
if 'w' not in readORwirte:
boxLayout.addWidget(QSplitter())
boxLayout.addWidget(refreshButton)
boxLayout.addWidget(QSplitter())
else:
dataType = self.parent().model.datas[index.row()][3]
objectType = self.parent().model.datas[index.row()][1]
dataType = self.parent().model.datas[index.row()][4]
objectType = self.parent().model.datas[index.row()][2]
editlineLayout = ObjectTypeEditlayout(objectType, dataType)
@ -226,8 +226,7 @@ class VarButtonDelegate(QItemDelegate):
model = blockView.model
blockType = blockView.blockType
blockIndex = blockView.blcokIndex
parmIndex = model.datas[sender.index[0]][0]
parmIndex = model.datas[sender.index[0]][1]
blockManage = Globals.getValue('blockManage')
values = []
#修改单位
@ -251,7 +250,7 @@ class VarButtonDelegate(QItemDelegate):
else:
values = objectTypeEditlayout.getEditlineValue()
dataType = model.datas[sender.index[0]][3]
dataType = model.datas[sender.index[0]][4]
if not values:
reply = QMessageBox.question(self.parent(),
'警告',
@ -276,7 +275,7 @@ class VarButtonDelegate(QItemDelegate):
sender = self.sender()
blockView = self.parent()
model = blockView.model
parmIndex = model.datas[sender.index[0]][0]
parmIndex = model.datas[sender.index[0]][1]
blockType = blockView.blockType
blockIndex = blockView.blcokIndex

@ -18,19 +18,19 @@ class ParamsVHeader(QHeaderView):
super(QHeaderView, self).resizeEvent(event)
for index, content in enumerate(self.datas):
self.setSectionResizeMode(index, QHeaderView.Fixed)
height = 50 * (content[2].count('\r\n') + 1)
height = 50 * (content[3].count('\r\n') + 1)
# valueHeight = 50 * (content[5].count('\r\n') + 1)
# height = desHeight if desHeight > valueHeight else valueHeight
# print(height, index)
if content[3] == 'DS-36':
if content[4] == 'DS-36':
height = height if height > 5 * 50 else 250
print(height)
# self.resizeSection(index, height)
if content[3] == 'DS-37':
if content[4] == 'DS-37':
height = height if height > 4 * 50 else 200
if content[3] == 'DS-39':
if content[4] == 'DS-39':
height = height if height > 7 * 50 else 350
if content[3] == 'DS-50':
if content[4] == 'DS-50':
height = height if height > 4 * 50 else 200
# self.resizeSection(index, height)
self.resizeSection(index, height)
@ -48,10 +48,10 @@ class ParmView(QTableView):
self.setData()
def setHeader(self):
self.setItemDelegateForColumn(6, VarButtonDelegate(self))
self.setItemDelegateForColumn(7, VarButtonDelegate(self))
# self.setItemDelegateForColumn(5, ComboBoxDelegate(self))
self.model = VarTableModel(['索引', '参数名', '描述', '数据类型', '访问', '当前值', '输入值'], [], table = self)
self.model = VarTableModel(['序号','索引', '参数名', '描述', '数据类型', '访问', '当前值', '输入值'], [], table = self)
def setupUi(self):
self.setShowGrid(True)
@ -69,7 +69,7 @@ class ParmView(QTableView):
self.proxy.setSourceModel(self.model)
self.setModel(self.proxy)
self.setCustomColumnWidths([1, 3, 8, 2, 2, 2, 3])
self.setCustomColumnWidths([1, 1, 3, 8, 2, 2, 2, 3])
# self.header.checkClicked.connect(self.model.headerClick)
@ -94,12 +94,12 @@ class ParmView(QTableView):
# self.datas = PressureTranslationBlock.getallParame()
self.datas = self.dbModel.getallParame()
for index, data in enumerate(self.datas):
data[5] = ''
desc = data[2].replace('\r\n', '').replace('\n', '')
data[6] = ''
desc = data[3].replace('\r\n', '').replace('\n', '')
lines = [desc[i:i+40] + "\r\n" for i in range(0, len(desc), 40)]
# 合并列表为一个字符串,移除最后一个换行符
result = "".join(lines).rstrip("\r\n")
data[2] = result
data[3] = result
data = data + ['', '', '']
self.model.append_data(data)
self.resizeHeader()

@ -52,8 +52,8 @@ class BlockManage():
def __init__(self, address = None):
self.address = address
if address:
# pass
self.initBlocks()
pass
# self.initBlocks()
@property
def DPV1Master(self):
@ -141,8 +141,8 @@ class BlockManage():
return block
def getBlockNums(self):
# return [1,1,1]
return [len(self.blockDict[BlockType.PB]), len(self.blockDict[BlockType.TB]), len(self.blockDict[BlockType.FB])]
return [1,1,1]
# return [len(self.blockDict[BlockType.PB]), len(self.blockDict[BlockType.TB]), len(self.blockDict[BlockType.FB])]
@classmethod
def searchSlave(self, callback):

@ -33,7 +33,7 @@ class PressureTranslationBlock(BaseModel):
return
l = []
for x in params:
l.append([x.index, x.paramName, x.description, x.dataType, x.accessType, x.dataSize])
l.append([x.id, x.index, x.paramName, x.description, x.dataType, x.accessType, x.dataSize])
return l
@classmethod

Loading…
Cancel
Save