0623更新

main
ZHANGXUXU\95193 4 months ago
parent ac858950e1
commit 8413662da9

@ -1,6 +1,6 @@
from PyQt5 import QtCore from PyQt5 import QtCore
from PyQt5.QtWidgets import (QHeaderView, QStyle, QStyleOptionButton, QTableView, QAbstractItemView) from PyQt5.QtWidgets import QHeaderView, QStyle, QStyleOptionButton, QTableView, QAbstractItemView, QDesktopWidget
from PyQt5.QtCore import (pyqtSignal, Qt, QRect) from PyQt5.QtCore import (pyqtSignal, Qt, QRect)
@ -78,6 +78,7 @@ class VarTableView(QTableView):
self.setupUi() self.setupUi()
def setHeader(self): def setHeader(self):
self.setItemDelegateForColumn(11, VarButtonDelegate(self)) self.setItemDelegateForColumn(11, VarButtonDelegate(self))
self.setItemDelegateForColumn(5, ModbusTypeBox(self)) self.setItemDelegateForColumn(5, ModbusTypeBox(self))
self.setItemDelegateForColumn(10, ModbusVarModelBox(self)) self.setItemDelegateForColumn(10, ModbusVarModelBox(self))
@ -90,16 +91,34 @@ class VarTableView(QTableView):
self.setAlternatingRowColors(True) self.setAlternatingRowColors(True)
self.setSelectionBehavior(QAbstractItemView.SelectRows) self.setSelectionBehavior(QAbstractItemView.SelectRows)
self.setModel(self.model) self.setModel(self.model)
self.header = CheckBoxHeader() self.header = CheckBoxHeader()
self.header.setStretchLastSection(True) self.header.setStretchLastSection(True)
self.header.setSectionResizeMode(QHeaderView.Stretch)
self.header.checkClicked.connect(self.model.headerClick) self.header.checkClicked.connect(self.model.headerClick)
self.setHorizontalHeader(self.header) self.setHorizontalHeader(self.header)
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setupColumnWidths()
self.header.setSectionResizeMode(0, QHeaderView.Fixed) self.header.setSectionResizeMode(0, QHeaderView.Fixed)
self.header.resizeSection(0, 70) self.header.resizeSection(0, 70)
def setupColumnWidths(self):
self.setCustomColumnWidths([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.2])
def setCustomColumnWidths(self, ratios):
# 计算总比例
totalRatio = sum(ratios)
# 获取窗口宽度
screen = QDesktopWidget().screenGeometry()
width = screen.width() - 300
# 根据比例设置每列的宽度
for i, ratio in enumerate(ratios):
columnWidth = int(width * (ratio / totalRatio))
self.setColumnWidth(i, columnWidth)
@ -111,7 +130,8 @@ class HartTableView(VarTableView):
self.setItemDelegateForColumn(9, HartButtonDelegate(self)) self.setItemDelegateForColumn(9, HartButtonDelegate(self))
self.setItemDelegateForColumn(8, HartVarModelBox(self)) self.setItemDelegateForColumn(8, HartVarModelBox(self))
self.model = HartModel([' ID', '仪器名', '描述', '电流值', '参数1', '参数2','参数3', '参数4', '值类型','操作'], [], table=self) self.model = HartModel([' ID', '仪器名', '描述', '电流值', '参数1', '参数2','参数3', '参数4', '值类型','操作'], [], table=self)
def setupColumnWidths(self):
self.header.setSectionResizeMode(QHeaderView.Stretch)
class TcRtdTableView(VarTableView): class TcRtdTableView(VarTableView):
def __init__(self, parent=None): def __init__(self, parent=None):
@ -122,7 +142,8 @@ class TcRtdTableView(VarTableView):
self.workThread = RTDTCThread(self) self.workThread = RTDTCThread(self)
Globals.setValue('RTDTCThread', self.workThread) Globals.setValue('RTDTCThread', self.workThread)
# self.workThread.getValueList.connect(self.getValueList) # self.workThread.getValueList.connect(self.getValueList)
def setupColumnWidths(self):
self.header.setSectionResizeMode(QHeaderView.Stretch)
def setHeader(self): def setHeader(self):
self.setItemDelegateForColumn(10, TcRtdButtonDelegate(self)) self.setItemDelegateForColumn(10, TcRtdButtonDelegate(self))
self.setItemDelegateForColumn(9, TcRtdVarModelBox(self)) self.setItemDelegateForColumn(9, TcRtdVarModelBox(self))
@ -136,6 +157,8 @@ class AnalogTableView(VarTableView):
self.workThread = AnalogThread(self) self.workThread = AnalogThread(self)
Globals.setValue('AnalogThread', self.workThread) Globals.setValue('AnalogThread', self.workThread)
def setupColumnWidths(self):
self.header.setSectionResizeMode(QHeaderView.Stretch)
def setHeader(self): def setHeader(self):
self.setItemDelegateForColumn(9, AnalogButtonDelegate(self)) self.setItemDelegateForColumn(9, AnalogButtonDelegate(self))
self.setItemDelegateForColumn(8, AnalogVarModelBox(self)) self.setItemDelegateForColumn(8, AnalogVarModelBox(self))
@ -150,6 +173,9 @@ class HartSimulateTableView(VarTableView):
self.workThread = HartSimulateThread(self) self.workThread = HartSimulateThread(self)
Globals.setValue('HartSimulateThread', self.workThread) Globals.setValue('HartSimulateThread', self.workThread)
def setupColumnWidths(self):
self.header.setSectionResizeMode(QHeaderView.Stretch)
def setHeader(self): def setHeader(self):
self.setItemDelegateForColumn(10, HartSimulateButtonDelegate(self)) self.setItemDelegateForColumn(10, HartSimulateButtonDelegate(self))
self.setItemDelegateForColumn(9, HartSimulateVarModelBox(self)) self.setItemDelegateForColumn(9, HartSimulateVarModelBox(self))

Loading…
Cancel
Save