# coding=utf-8 import sys from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * class Table(QWidget): def __init__(self,parent=None): super(Table, self).__init__(parent) #設置標題與初始大小 self.setWindowTitle('QTableView表格復選框案例') self.resize(500,300) self.tableView=QTableView() self.model = QStandardItemModel(self.tableView) #設置數據層次結構,4行4列 self.model=QStandardItemModel(4,4) t = QCheckBox(self) #設置水平方向四個頭標簽文本內容 self.model.setHorizontalHeaderLabels(['狀態','姓名','身份證','地址']) for row in range(4): for column in range(4): item_checked = QStandardItem() item_checked.setCheckState(Qt.Checked) item_checked.setCheckable(True) self.model.setItem(column,0, item_checked) item=QStandardItem('row %s,column %s'%(row,column)) #設置每個位置的文本值 self.model.setItem(row,column,item) self.tableView.setModel(self.model) #設置布局 layout=QVBoxLayout() layout.addWidget(self.tableView) self.setLayout(layout) if __name__ == '__main__': app=QApplication(sys.argv) table=Table() table.show() sys.exit(app.exec_())