You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.8 KiB
Python

2 years ago
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)