pyqt5 表格 QTableView

1、简介

列表显示数据

在这里插入图片描述

2、功能实现

# -*- 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(500,300);
		self.model = QStandardItemModel(4,4);  #创建 行和列 固定的 模板
		self.model.setHorizontalHeaderLabels(['标题1','标题2','标题3','标题4']) #设置每列标题
		
		for row in range(4):
			for column in range(4):
				item = QStandardItem("row %s, column %s"%(row,column)) # 创建模板内容
				self.model.setItem(row, column, item)  #向模板里添加 item
		
		self.tableView = QTableView() #创建一个表格
		self.tableView.setModel(self.model) #表格设置模板
		#下面代码让表格填满窗口
		#self.tableView.horizontalHeader().setStretchLastSection(True)
		#self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
		dlgLayout=QVBoxLayout(); #闯创建一个layout
		dlgLayout.addWidget(self.tableView) #将layout  中添加 表格
		self.setLayout(dlgLayout) #将lay  设置 窗口layout


if __name__ == '__main__':
	app = QApplication(sys.argv)	
	table = Table()
	table.show()
	sys.exit(app.exec_())

  1. 添加数据:
self.model.appendRow([
QStandItem("row %s, column %s"%(11, 11)),
QStandItem("row %s, column %s"%(11, 11)),
QStandItem("row %s, column %s"%(11, 11)),
QStandItem("row %s, column %s"%(11, 11)),
])
  1. 删除当前选中的数据
    第一种方法:
#取当前选中的所有行
index =  self.tableView.selectionModel().selection().index()
if len(index) > 0
index = index(0) #取索引的第一行
self.model.removeRows(index.row(),1)

第二种方法:

index =  self.tableView.currentIndex()
print(index.row)
self.model.removeRow(index.row())

如果什么都不选,那么默认删除的就是第一行,也就是索引为0的行,选中多行,如果焦点在最后一行久删除这一行。

文件参考:
PyQt 快速开发与实践

本人郑重声明,本博客所著文章、图片版权归权利人持有,本博只做学习交流分享所用,不做任何商业用途。访问者可將本博提供的內容或服务用于个人学习、研究或欣赏,不得用于商业使用。同時,访问者应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人的合法权利;如果用于商业用途,须征得相关权利人的书面授权。若以上文章、图片的原作者不愿意在此展示內容,请及时通知在下,將及时予以刪除。

猜你喜欢

转载自blog.csdn.net/qq_27061049/article/details/89500229
今日推荐