import typing import qtawesome from PyQt5 import QtGui,QtCore,QtWidgets from PyQt5.QtCore import QAbstractTableModel, QModelIndex, Qt, 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 .UserModel import UserButtonDelegate, UserCheckBoxDelegate from .UserModel import UserTableModel from ..VarManages.VarTable import CheckBoxHeader class UserTableView(QTableView): def __init__(self, parent=None): super(UserTableView, self).__init__(parent) self.setItemDelegateForColumn(9, UserButtonDelegate(self)) self.setItemDelegateForColumn(8, UserCheckBoxDelegate(self)) self.setItemDelegateForColumn(7, UserCheckBoxDelegate(self)) self.setItemDelegateForColumn(6, UserCheckBoxDelegate(self)) self.setItemDelegateForColumn(5, UserCheckBoxDelegate(self)) self.setShowGrid(False) # self.setAlternatingRowColors(True) self.setSelectionBehavior(QAbstractItemView.SelectRows) self.model = UserTableModel([' ID', '用户名', '登陆密码', '备注', '创建时间', '工程管理权限', '通讯配置权限', '用户管理权限','趋势查看权限','操作'],[], table = self) self.setModel(self.model) self.header = CheckBoxHeader(changeY = True) self.header.setObjectName('userHeader') 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.verticalHeader().setDefaultSectionSize(50) self.verticalHeader().hide() self.header.setSectionResizeMode(0, QHeaderView.Fixed) self.header.resizeSection(0, 70) def cellButtonClicked(self): print(1)