本文将针对利用QSortFilterProxyModel进行自定义模型的过程进行讲解
我们可以通过QAbstract类对某些组件进行自定义,在有些情况下,我们想要获得一些通过自定义才能获得的效果,例如对于某个数据进行排序或筛选,这种情况下我们可以使用代理模型来实现该功能。这里给出了一个QSortFilterProxyModel模型,该模型可以实现数据排序及过滤。通过和其他模型组合使用(例如用户自定义的表格模型),我们可以获得更强大的自定义模型(例如一个拥有排序和过滤功能的表格模型)。
QSortFilterProxyModel使用1
1 | class ConnectionTableModel : public QAbstractTableModel |
在头文件中,我们声明了一个类ConnectionTableModel
,继承自QAbstractTableModel
。它有四个成员变量以及一个私有槽函数。
1 | MainWindow::MainWindow(QWidget *parent) : |
在主窗口构造函数中,我们首先定义了一个ConnectionTableModel模型,然后我们建立了一个代理模型,并将代理模型的源模型设置为了model,这样我们就拥有了一个能够排序及筛选的表格模型。