QT开发中文网

QSortFilterProxyModel 对已有的 QTableView 进行数据过滤的过程中,双击修改时过滤数据时,显示的是源模型的当前行数据而不是过滤后的数据。C++完整代码

#include #include #include #include

class MySortFilterProxyModel : public QSortFilterProxyModel { public:

MySortFilterProxyModel(QObject *parent = nullptr) : QSortFilterProxyModel(parent) {}

bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
{
    QModelIndex index = sourceModel()->index(source_row, 0, source_parent);
    QString text = sourceModel()->data(index).toString();

    if (text.contains("filtered")) {
        return true;
    }

    return false;
}

};

int main(int argc, char *argv[]) {

QApplication a(argc, argv);

QTableView tableView;

QStandardItemModel sourceModel(5, 2);
sourceModel.setData(sourceModel.index(0, 0), "row1");
sourceModel.setData(sourceModel.index(0, 1), "col1");
sourceModel.setData(sourceModel.index(1, 0), "row2");
sourceModel.setData(sourceModel.index(1, 1), "col2");
sourceModel.setData(sourceModel.index(2, 0), "row3");
sourceModel.setData(sourceModel.index(2, 1), "col3");
sourceModel.setData(sourceModel.index(3, 0), "row4");
sourceModel.setData(sourceModel.index(3, 1), "col4");
sourceModel.setData(sourceModel.index(4, 0), "row5");
sourceModel.setData(sourceModel.index(4, 1), "col5");

MySortFilterProxyModel proxyModel;
proxyModel.setSourceModel(&sourceModel);
proxyModel.setDynamicSortFilter(true);
tableView.setModel(&proxyModel);

tableView.show();

return a.exec();

}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1029

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?