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_())
- 添加数据:
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)),
])
- 删除当前选中的数据
第一种方法:
#取当前选中的所有行
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 快速开发与实践
本人郑重声明,本博客所著文章、图片版权归权利人持有,本博只做学习交流分享所用,不做任何商业用途。访问者可將本博提供的內容或服务用于个人学习、研究或欣赏,不得用于商业使用。同時,访问者应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人的合法权利;如果用于商业用途,须征得相关权利人的书面授权。若以上文章、图片的原作者不愿意在此展示內容,请及时通知在下,將及时予以刪除。