1

QSqlTableModel在 Qt C++ 中使用,我想只显示包含QComboBox. 例如,当我单击组合框中的“John”项时,表格视图应该只显示以“John”开头的名称。我不知道该怎么做。

4

2 回答 2

2

您需要的类是QSortFilterProxyModel

与其直接显示 QSqlTableModel,不如在模型和视图之间放置一个 QSortFilterProxyModel:

QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel( this );

proxyModel->setSourceModel( yourQSqlTableModel );

yourView->setModel( proxyModel );

然后,您可以对该模型进行排序或过滤(检查顶部链接中的Sorting和部分)。Filtering

于 2013-07-26T10:57:19.710 回答
1

顺便说一句,如果您的过滤类型可以通过 SQL 轻松提供,您可以使用 QSqlTableModel 的setFilter()方法。

于 2014-07-22T08:36:27.620 回答