Python之PyQt5的高级控件QTableView学习

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_())

效果:
在这里插入图片描述

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyQt5中的QTableView是一个常见的表格控件,用于展示数据。下面是一个简单的示例,演示如何在QTableView中显示数据。 首先,需要导入PyQt5和pandas库: ```python import sys import pandas as pd from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView from PyQt5.QtCore import Qt from PyQt5.QtGui import QStandardItemModel, QStandardItem ``` 然后,创建一个QStandardItemModel模型,并设置表头: ```python # 创建模型 model = QStandardItemModel() # 设置表头 model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) ``` 接着,使用pandas库来读取数据: ```python # 读取数据 data = pd.read_csv('data.csv') ``` 然后,遍历数据,并将其添加到模型中: ```python # 添加数据到模型 for i in range(data.shape[0]): row = [] for j in range(data.shape[1]): item = QStandardItem(str(data.iloc[i, j])) item.setTextAlignment(Qt.AlignCenter) row.append(item) model.appendRow(row) ``` 最后,将QTableView控件与模型绑定,并显示窗口: ```python # 创建QTableView控件 view = QTableView() view.setModel(model) # 创建窗口 window = QMainWindow() window.setCentralWidget(view) window.show() # 运行应用程序 sys.exit(app.exec_()) ``` 完整代码如下: ```python import sys import pandas as pd from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView from PyQt5.QtCore import Qt from PyQt5.QtGui import QStandardItemModel, QStandardItem # 创建应用程序 app = QApplication(sys.argv) # 创建模型 model = QStandardItemModel() # 设置表头 model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) # 读取数据 data = pd.read_csv('data.csv') # 添加数据到模型 for i in range(data.shape[0]): row = [] for j in range(data.shape[1]): item = QStandardItem(str(data.iloc[i, j])) item.setTextAlignment(Qt.AlignCenter) row.append(item) model.appendRow(row) # 创建QTableView控件 view = QTableView() view.setModel(model) # 创建窗口 window = QMainWindow() window.setCentralWidget(view) window.show() # 运行应用程序 sys.exit(app.exec_()) ``` 其中,data.csv是一个包含姓名、年龄和性别的CSV文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肤白貌美

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值