gpt4 book ai didi

c++ - QFileSystemModel 中的文件是灰色的

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:09 26 4
gpt4 key购买 nike

我正在使用以下过滤器设置我的 QFileSystemModel:

QDir::Filters( Dirs|AllDirs|Files|Drives|NoDotAndDotDot|AllEntries )  

在我的代理模型中,我使用正则表达式按名称过滤文件:

proxy_model_->setFilterRegExp(".*\\.(cpp$|cxx$|c$|hpp$|h$)");

....然后我的 model_ 是一个 QFileSystemModel,我有一行:

model_->setNameFilters(QStringList(proxy->filterRegExp().pattern()));

...但是显示的文件是灰色的。为什么以及如何使它们“正常”。

最佳答案

其实不同的Qt类之间格式是不一致的。如果他们采用单个 QString,那么就像@HostileFork 所说的那样。然而,在这种情况下,函数 setNameFilters()需要一个 QStringList,这意味着你想要:

fileModel->setNameFilters({"*.cpp", "*.cxx", "*.c", "*.hpp", "*.h"});

由于您的输入格式错误(正则表达式,而不是 Window 的通配符),所有内容都被标记为“过滤掉”,因为没有任何内容符合奇怪的语法。

为什么会变灰?因为 QFileSystemModel 默认禁用/灰显被过滤的文件(bwah?),而不是隐藏它们。这可以通过调用来改变:

fileModel->setNameFilterDisables(false);

QFileSystemModel's 'nameFilterDisables' property

关于c++ - QFileSystemModel 中的文件是灰色的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457401/

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