QTableView是表格视图,可以像excel一样的显示数据,如下图:
详细代码:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class TableView(QWidget):
def __init__(self, arg=None):
super(TableView, self).__init__(arg)
self.setWindowTitle("QTableView表格用法")
self.resize(500,300);
#4行3列
self.model = QStandardItemModel(4,3)
#设置表头
self.model.setHorizontalHeaderLabels(['id','姓名','年龄'])
self.tableview = QTableView()
self.tableview.move(20,20)
# 列宽自适应充满表格
self.tableview.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# 关联QTableView控件和Model
self.tableview.setModel(self.model)
# 添加数据
item11 = QStandardItem('10')
item12 = QStandardItem('张三')
item13 = QStandardItem('123')
self.model.setItem(0,0,item11) #第一行第一列
self.model.setItem(0,1, item12) #第一行第二列
self.model.setItem(0,2, item13) #第一行第三列
layout = QVBoxLayout()
layout.addWidget(self.tableview)
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
table = TableView()
table.show()
sys.exit(app.exec_())
使用前需要设置model,用model设置表格的行数,列数,表格等。表格的列和宽可以自己指定,也可以自动填满列宽。