gpt4 book ai didi

c++ - 如何禁用 QTreeView 或模型的过滤选项

转载 作者:行者123 更新时间:2023-11-28 05:37:11 25 4
gpt4 key购买 nike

我有一段代码处理两个 QTreeView,其中项目从左 TreeView 添加到右 TreeView 。这是代码的一部分:

MasterModel *model = new MasterModel;
leftProxyFilterModel *leftModel = new leftProxyFilterModel;
rightSelectedRowsFiletrModel *rightModel = new rightSelectedRowsFilterModel;

QTreeView *leftTreeView;
QTreeView *rightTreeView;

leftModel->setSourceModel(model);
rightModel->setSourceModel(leftModel);

leftTreeView->setModel(leftModel);
rightTreeView->setModel(rightModel);

现在过滤一些字符串是这样设置的:

leftModel->setFilterWildcard(LineEdit->text());

这一行是过滤两个 TreeView 的内容,我想要的是过滤选项应该只适用于左 TreeView 。有人可以帮我实现这个目标吗???

最佳答案

如果 rightModel 的来源是 leftModel,那么您应用于 leftModel 的任何过滤器也会影响 rightModel .

rightModel->setSourceModel(leftModel) 更改为 rightModel->setSourceModel(model)

更新:或者,您可以添加另一层QSortFilterProxyModel,这样您的过滤器就不会传播到rightModel:

leftModel->setSourceModel(model);
rightModel->setSourceModel(leftModel);

auto leftFilteredModel = new QSortFilterProxyModel;
leftFilteredModel->setSource(leftModel);
leftFilteredModel->setFilterWildcard(LineEdit->text());

leftTreeView->setModel(leftFilteredModel);
rightTreeView->setModel(rightModel);

关于c++ - 如何禁用 QTreeView 或模型的过滤选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37982691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com