我在Qt C ++中使用QSqlTableModel
,我想只显示包含QComboBox
中文本的行。例如,当我单击组合框中的“John”项时,表视图应该只显示以“John”开头的名称。我不知道该怎么做。
答案 0 :(得分:2)
您需要的课程是QSortFilterProxyModel:
不是直接显示QSqlTableModel,而是在模型和视图之间放置一个QSortFilterProxyModel:
QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel( this );
proxyModel->setSourceModel( yourQSqlTableModel );
yourView->setModel( proxyModel );
然后,您可以对该模型进行排序或过滤(请查看顶部链接中的Sorting
和Filtering
部分。)
答案 1 :(得分:1)
顺便说一句,如果您可以通过SQL轻松提供过滤类型,则可以使用QSqlTableModel的setFilter()
方法。