PyQt学习笔记:排序和代理模型
在使用 PyQt 开发界面时,我们经常会用到 model/view 架构来展示数据。而在对数据进行排序和过滤时,则需要用到代理模型 QSortFilterProxyModel。本篇文章将介绍如何使用 QSortFilterProxyModel 对表格中的数据进行排序和过滤,同时提供代码示例。
首先,我们需要对数据进行排序。在使用 QTableView 展示数据时,默认情况下是没有排序功能的。这时就需要用到 QSortFilterProxyModel,它可以根据条件对数据进行排序和过滤。
示例代码如下:
from PyQt5.QtCore import QSortFilterProxyModel, Qt
from PyQt5.QtGui import QStandardItemModel
from PyQt5.QtWidgets import QApplication, QTableView
if __name__ == '__main__':
app = QApplication([])
model = QStandardItemModel()
for row in range(4):
for column in range(3):
item = QStandardItem(f'({row}, {column})')
model.setItem(row, column, item)