|
|
|
@ -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))
|
|
|
|
|