import typing import qtawesome from PyQt5 import QtGui,QtCore,QtWidgets from PyQt5.QtCore import QAbstractTableModel, QModelIndex, Qt, QVariant, QSize import sys from PyQt5.QtWidgets import QApplication, QHeaderView, QStyle, QStyleOptionButton, QTableView, QAbstractItemView from PyQt5.QtCore import pyqtSignal, Qt, QAbstractTableModel, QModelIndex, QRect, QVariant from PyQt5.QtWidgets import QItemDelegate, QHBoxLayout, QWidget, QTableView from .ProjectModel import ProjectButtonDelegate, BackgroundDelegate, ProTypeBoxDelegate from .ProjectModel import ProjectTableModel from ..VarManages.VarTable import CheckBoxHeader class ProjectTableView(QTableView): def __init__(self, parent=None): super(ProjectTableView, self).__init__(parent) self.delegate = BackgroundDelegate(self) self.setItemDelegate(self.delegate) self.setItemDelegateForColumn(5, ProjectButtonDelegate(self)) self.setItemDelegateForColumn(4, ProTypeBoxDelegate(self)) self.setShowGrid(False) # self.setAlternatingRowColors(True) self.setSelectionBehavior(QAbstractItemView.SelectRows) self.model = ProjectTableModel([' ID', '工程名称', '工程描述', '创建时间', '通讯类型', '操作'],[], table = self) self.setModel(self.model) self.header = CheckBoxHeader(changeY = True) self.header.setStretchLastSection(True) self.header.setSectionResizeMode(QHeaderView.Stretch) self.header.checkClicked.connect(self.model.headerClick) self.header.setObjectName('projectHeader') self.setHorizontalHeader(self.header) self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.verticalHeader().setDefaultSectionSize(50) self.header.setSectionResizeMode(0, QHeaderView.Fixed) self.header.resizeSection(0, 70)