Compare commits

...

2 Commits

@ -474,6 +474,38 @@ QWidget#deviceWidget{
}
QWidget#scroWidget{
background-color: white;
hight: 25px;
}
QScrollArea#scroArea{
border: none;
}
QScrollBar#scroBar{
background: white;
height: 5px;
}
QScrollBar#scroBar::handle{
background: gray;
height: 5px;
}

@ -3,7 +3,7 @@ import qtawesome
from PyQt5.QtGui import QPixmap, QPainter, QIcon
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QStyledItemDelegate, QStyle, QComboBox, QMessageBox, QPushButton,QStackedWidget, QLineEdit \
, QVBoxLayout, QHBoxLayout, QWidget, QLabel, QSplitter, QButtonGroup, QDialog, QRadioButton
, QVBoxLayout, QHBoxLayout, QWidget, QLabel, QSplitter, QScrollArea, QButtonGroup, QDialog, QRadioButton
from utils.DBModels.DeviceParModels import *
from UI.BlockParameterView import ParmView
from UI.SearchAddressWidget import SearchAddressWidget
@ -85,11 +85,14 @@ class DynamicAddBlock(QHBoxLayout):
self.initUI()
def initUI(self):
self.setContentsMargins(0, 0, 0, 0)
pbNumber = self.blocklist[0]
tbNumber = self.blocklist[1]
fbNumber = self.blocklist[2]
for i in range(pbNumber):
pblockBtn = QPushButton('物理块')
@ -273,6 +276,11 @@ class BlockParameterManageWidget(QWidget):
self.settingLayout.addWidget(self.refershDataBtn, 1)
# self.settingLayout.addLayout(self.blockLayout)
# self.settingLayout.setSpacing(5)
self.scroArea = QScrollArea()
self.scroArea.setObjectName('scroArea')
self.scroArea.horizontalScrollBar().setObjectName('scroBar')
self.splitter = QSplitter()
self.settingLayout.addWidget(self.splitter, 18)
@ -320,8 +328,12 @@ class BlockParameterManageWidget(QWidget):
Globals.setValue('blockManage', self.blockManage)
blocklist = self.blockManage.getBlockNums()
self.blockLayout = DynamicAddBlock(blocklist, self.blockManage.TBTypeList)
self.settingLayout.addLayout(self.blockLayout, 7)
self.settingLayout.addWidget(self.splitter, 11)
self.scroWidget = QWidget()
self.scroWidget.setObjectName('scroWidget')
self.scroWidget.setLayout(self.blockLayout)
self.scroArea.setWidget(self.scroWidget)
self.settingLayout.addWidget(self.scroArea, 18)
# self.settingLayout.addWidget(self.splitter, 11)
self.mainlayout.addWidget(self.blockLayout.parameStackWidget, 20)
self.initUIstat = False
self.recordAddress = address #记录链接成功的站地址
@ -345,12 +357,15 @@ class BlockParameterManageWidget(QWidget):
self.blockLayout.deleteLater()
self.splitter.deleteLater()
self.splitter = QSplitter()
# self.scroArea.deleteLater()
blocklist = self.blockManage.getBlockNums()
TbtypeList = self.blockManage.TBTypeList
self.blockLayout = DynamicAddBlock(blocklist, TbtypeList)
self.settingLayout.addLayout(self.blockLayout, 7)
self.settingLayout.addWidget(self.splitter, 11)
self.scroWidget.setObjectName('scroWidget')
self.scroWidget.setLayout(self.blockLayout)
self.scroArea.setWidget(self.scroWidget)
self.settingLayout.addWidget(self.scroArea, 18)
self.mainlayout.addWidget(self.blockLayout.parameStackWidget, 20)
self.recordAddress = address #记录链接成功的站地址
else:
@ -407,6 +422,7 @@ class BlockParameterManageWidget(QWidget):
self.blockLayout.deleteLater()
self.splitter.deleteLater()
self.splitter = QSplitter()
self.scroArea.deleteLater()
self.widget = ShowImage('Static/pict.png')
self.mainlayout.addWidget(self.widget, 20)
self.settingLayout.addWidget(self.splitter,18)

@ -53,7 +53,7 @@ class BlockManage():
# return cls._instance
def __init__(self, _isPa, address = None):
print(_isPa)
# print(_isPa)
self._isPa = _isPa
self.address = address
self.TBTypeList = []
@ -74,7 +74,7 @@ class BlockManage():
def initBlocks(self):
# print(self._isPa,5555)
if not self.DPV1Master.judgeSlave(self.address):
print(self.address)
# print(self.address)
raise RuntimeError(f"连接从站{self.address}失败.")
self.blockDict = {
BlockType.PB : [],
@ -111,16 +111,17 @@ class BlockManage():
else:
dirMesDic[blockIndex] = blockNums
# print(dirMesDic)
entryTuples = []
# entryTuples = []
for key, value in dirMesDic.items():
# print(key, value)
if key == 1:
data = self.DPV1Master.readParm(address = self.address, slot = 1, index = key, length = dirLength + 4 * value)
data = self.DPV1Master.readParm(address = self.address, slot = 1, index = 1, length = dirLength + 4 * value)
else:
data = self.DPV1Master.readParm(address = self.address, slot = 1, index = key, length = 4 * value)
# print(data, int(len(data)/2))
# print(data)
data = struct.unpack('>{}h'.format(int(len(data)/2)), data)
# print(data)
tuples = [(data[i], data[i+1]) for i in range(0, len(data), 2)]
entryTuples += tuples
# print(entryTuples)
@ -130,6 +131,7 @@ class BlockManage():
blkDirMesByte = struct.pack('>h', entryTuples[typeIndex][0])
blkIndex = int(blkDirMesByte[0]) # 目录对象编号
blkoffect = int(blkDirMesByte[1]) # 块从第几个Dir_Entry开始
# print(blkoffect)
numBlk = entryTuples[typeIndex][1] # 块数量
# print(blkIndex, blkoffect, numBlk)
for i in range(numBlk):

Loading…
Cancel
Save