diff --git a/UI/VarManages/VarTable.py b/UI/VarManages/VarTable.py index cb16470..5053a7e 100644 --- a/UI/VarManages/VarTable.py +++ b/UI/VarManages/VarTable.py @@ -1,6 +1,6 @@ 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) @@ -78,6 +78,7 @@ class VarTableView(QTableView): self.setupUi() def setHeader(self): + self.setItemDelegateForColumn(11, VarButtonDelegate(self)) self.setItemDelegateForColumn(5, ModbusTypeBox(self)) self.setItemDelegateForColumn(10, ModbusVarModelBox(self)) @@ -90,16 +91,34 @@ class VarTableView(QTableView): self.setAlternatingRowColors(True) self.setSelectionBehavior(QAbstractItemView.SelectRows) + self.setModel(self.model) self.header = CheckBoxHeader() self.header.setStretchLastSection(True) - self.header.setSectionResizeMode(QHeaderView.Stretch) self.header.checkClicked.connect(self.model.headerClick) self.setHorizontalHeader(self.header) self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.setupColumnWidths() + + self.header.setSectionResizeMode(0, QHeaderView.Fixed) 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(8, HartVarModelBox(self)) self.model = HartModel([' ID', '仪器名', '描述', '电流值', '参数1', '参数2','参数3', '参数4', '值类型','操作'], [], table=self) - + def setupColumnWidths(self): + self.header.setSectionResizeMode(QHeaderView.Stretch) class TcRtdTableView(VarTableView): def __init__(self, parent=None): @@ -122,7 +142,8 @@ class TcRtdTableView(VarTableView): self.workThread = RTDTCThread(self) Globals.setValue('RTDTCThread', self.workThread) # self.workThread.getValueList.connect(self.getValueList) - + def setupColumnWidths(self): + self.header.setSectionResizeMode(QHeaderView.Stretch) def setHeader(self): self.setItemDelegateForColumn(10, TcRtdButtonDelegate(self)) self.setItemDelegateForColumn(9, TcRtdVarModelBox(self)) @@ -136,6 +157,8 @@ class AnalogTableView(VarTableView): self.workThread = AnalogThread(self) Globals.setValue('AnalogThread', self.workThread) + def setupColumnWidths(self): + self.header.setSectionResizeMode(QHeaderView.Stretch) def setHeader(self): self.setItemDelegateForColumn(9, AnalogButtonDelegate(self)) self.setItemDelegateForColumn(8, AnalogVarModelBox(self)) @@ -150,6 +173,9 @@ class HartSimulateTableView(VarTableView): self.workThread = HartSimulateThread(self) Globals.setValue('HartSimulateThread', self.workThread) + def setupColumnWidths(self): + self.header.setSectionResizeMode(QHeaderView.Stretch) + def setHeader(self): self.setItemDelegateForColumn(10, HartSimulateButtonDelegate(self)) self.setItemDelegateForColumn(9, HartSimulateVarModelBox(self))