Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何使用组合框文本仅显示QSqlTableModel中的特定行?_Qt_Qcombobox_Qsqltablemodel - Fatal编程技术网

Qt 如何使用组合框文本仅显示QSqlTableModel中的特定行?

Qt 如何使用组合框文本仅显示QSqlTableModel中的特定行?,qt,qcombobox,qsqltablemodel,Qt,Qcombobox,Qsqltablemodel,我在qtC++中使用 qsqtLabLimoDele/Cuff>,我只想显示包含在 qCuMBOxbox < />代码中的文本行。例如,当我单击组合框中的“John”项时,表视图应该只显示以“John”开头的名称。我不知道怎么做。您需要的课程是: 不要直接显示QSqlTableModel,而是在模型和视图之间放置QSortFilterProxy模型: QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel( this ); p

我在qtC++中使用<代码> qsqtLabLimoDele/Cuff>,我只想显示包含在<代码> qCuMBOxbox < />代码中的文本行。例如,当我单击组合框中的“John”项时,表视图应该只显示以“John”开头的名称。我不知道怎么做。

您需要的课程是:

不要直接显示QSqlTableModel,而是在模型和视图之间放置QSortFilterProxy模型:

QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel( this );

proxyModel->setSourceModel( yourQSqlTableModel );

yourView->setModel( proxyModel );

然后,您可以对该模型进行排序或筛选(检查顶部链接中的
排序
筛选
部分)。

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

非常感谢您。现在我将查找排序和筛选