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
41 lines
1.8 KiB
Python
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)
|