Python之PyQt5的高级控件QTableView学习
1、#设置表格100%填满窗口
self.tableView.horizontalHeader().setStretchLastSection(True)
#self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
2、#设置指定列宽度
self.tableView.setColumnWidth(0,100)
self.tableView.setColumnWidth(1,300)
self.tableView.setColumnWidth(2,100)
self.tableView.setColumnWidth(3,100)
self.tableView.setColumnWidth(4,100)
self.tableView.setColumnWidth(5,100)
self.tableView.setColumnWidth(6,100)
self.tableView.setColumnWidth(7,80)
3、QTableView,QStandardItemModel隐藏默认的行号
hearder=self.tableView.verticalHeader()
hearder.hide()
4、QTableView,设置不可编辑
self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
完整代码:
# -*- coding: utf-8 -*-
'''
【简介】
PyQT5中QTableView表格视图控件的例子
'''
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Table(QWidget):
def __init__(self, arg=None):
super(Table, self).__init__(arg)
self.setWindowTitle("QTableView表格视图控件的例子")
self.resize(1000,400);
self.model=QStandardItemModel(4,4);
self.model.setHorizontalHeaderLabels(['测试步骤','测试项目','规格下限','规格上限','单位','实测值','测试结果'])
for row in range(100):
for column in range(7):
item = QStandardItem("row %s, column %s"%(row,column))
self.model.setItem(row, column, item)
self.tableView=QTableView()
self.tableView.setModel(self.model)
#下面代码让表格100填满窗口
self.tableView.horizontalHeader().setStretchLastSection(True)
#self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#设置列宽度
self.tableView.setColumnWidth(0,100)
self.tableView.setColumnWidth(1,300)
self.tableView.setColumnWidth(2,100)
self.tableView.setColumnWidth(3,100)
self.tableView.setColumnWidth(4,100)
self.tableView.setColumnWidth(5,100)
self.tableView.setColumnWidth(6,100)
self.tableView.setColumnWidth(7,80)
#QTableView,QStandardItemModel隐藏默认的行号
hearder=self.tableView.verticalHeader()
hearder.hide()
#QTableView,不可编辑
self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
dlgLayout=QVBoxLayout();
dlgLayout.addWidget(self.tableView)
self.setLayout(dlgLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
table = Table()
table.show()
sys.exit(app.exec_())
效果: