如何在QFileDialog :: getExistingDirectory中指定文件过滤器?

Murzagurskiy

我需要选择一个包含文件“ * .in”的目录。但是,如果使用getExistingDirectory,则无法指定文件过滤器,因此看不到文件。

但是我只需要查看“ * .in”文件,我只能选择目录,而不是文件。现在我使用此代码:

qDebug() << QFileDialog::getExistingDirectory(this, tr("Выберите папку с файлами устройств"), "", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);

而且我看不到所选目录中的任何文件(在对话框中)。

我该怎么做?

乔治·帕什科夫(Georgy Pashkov)

您需要通过QFileDialog::DontUseNativeDialog选项。从以下文档getExistingDirectory

在Windows和OS X上,此静态函数将使用本机文件对话框而不使用QFileDialog。但是,本机Windows文件对话框不支持在目录选择器中显示文件。您需要传递DontUseNativeDialog来使用QFileDialog显示文件。在Windows CE上,如果设备没有本机文件对话框,则将使用QFileDialog。

要按扩展名过滤显示的文件,您将需要做更多的事情:

QFileDialog dlg(nullptr, tr("Choose Directory"));
dlg.setOptions(QFileDialog::DontUseNativeDialog | QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
dlg.setFileMode(QFileDialog::Directory);
dlg.setNameFilter(tr("Directories with device files (*.in)"));
if (dlg.exec())
    qDebug() << dlg.selectedFiles();

当我尝试此操作时,仍会显示与过滤器不匹配的文件,但显示为灰色(我在MacOS上尝试过,也许您在Windows上会有更多的运气)。

没有阻止用户选择不包含与过滤器匹配的文件的文件夹的标准方法。一种解决方案是从您自己的类派生QFileDialog并覆盖该accept函数(不QFileDialog::accept从覆盖中调用将阻止对话框关闭)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Prisma中指定可选的查询过滤器?

来自分类Dev

如何在h5py中指定自定义压缩过滤器

来自分类Dev

如何在Visual Studio中指定项目过滤器顺序?

来自分类Dev

如何在xml中为System.Diagnostics侦听器或过滤器指定文件夹?

来自分类Dev

如何在WebApplicationInitializer中为Servlet过滤器指定url-pattern?

来自分类Dev

如何保护某个文件免受git过滤器的处理?

来自分类Dev

如何使用Logstash过滤器解析xml文件

来自分类Dev

如何将日志保存到文件过滤器?

来自分类Dev

如何在Visual Studio 2013中添加文件夹,而不是“过滤器”?

来自分类Dev

如何在目录中选择与特定名称过滤器匹配的文件?-PHP

来自分类Dev

如何在.testcaferc配置文件中为夹具元设置多个过滤器?

来自分类Dev

从过滤器成功获取结果后,如何在Laravel 8的刀片文件中显示

来自分类Dev

如何在PHP外部文件中调用过滤器挂钩

来自分类Dev

如何在Windows 7索引搜索中为特定文件类型设置过滤器?

来自分类Dev

如何在Android清单文件中的活动的意图过滤器的动作中添加空间

来自分类Dev

如何使用为计算列指定的过滤器过滤剑道网格数据

来自分类Dev

函数中指定的参数自动传递给过滤器

来自分类Dev

Elasticsearch 在聚合中指定索引过滤器

来自分类Dev

如何在Tableau中的过滤器条件公式中将“过滤器”设置为“全部”?

来自分类Dev

ngGrid如何在多个列(例如Excel数据过滤器)上创建过滤器?

来自分类Dev

如何在过滤器数据表中使用全局过滤器

来自分类Dev

如何在 angular2 中创建独特的过滤器过滤器组件

来自分类Dev

如何过滤数据过滤器jQuery

来自分类Dev

过滤数组:如何订购过滤器

来自分类Dev

如何使用Angular货币过滤器指定与默认货币不同的语言环境?

来自分类Dev

如何为ng-repeat指定自定义过滤器功能?

来自分类Dev

如何为AWS ec2 describe-vpc-peering-connections指定多个过滤器?

来自分类Dev

如何使用Angular货币过滤器指定与默认货币不同的语言环境?

来自分类Dev

如何在Java中的Apache Spark Streaming中为文件名模式定义文件过滤器?

Related 相关文章

  1. 1

    如何在Prisma中指定可选的查询过滤器?

  2. 2

    如何在h5py中指定自定义压缩过滤器

  3. 3

    如何在Visual Studio中指定项目过滤器顺序?

  4. 4

    如何在xml中为System.Diagnostics侦听器或过滤器指定文件夹?

  5. 5

    如何在WebApplicationInitializer中为Servlet过滤器指定url-pattern?

  6. 6

    如何保护某个文件免受git过滤器的处理?

  7. 7

    如何使用Logstash过滤器解析xml文件

  8. 8

    如何将日志保存到文件过滤器?

  9. 9

    如何在Visual Studio 2013中添加文件夹,而不是“过滤器”?

  10. 10

    如何在目录中选择与特定名称过滤器匹配的文件?-PHP

  11. 11

    如何在.testcaferc配置文件中为夹具元设置多个过滤器?

  12. 12

    从过滤器成功获取结果后,如何在Laravel 8的刀片文件中显示

  13. 13

    如何在PHP外部文件中调用过滤器挂钩

  14. 14

    如何在Windows 7索引搜索中为特定文件类型设置过滤器?

  15. 15

    如何在Android清单文件中的活动的意图过滤器的动作中添加空间

  16. 16

    如何使用为计算列指定的过滤器过滤剑道网格数据

  17. 17

    函数中指定的参数自动传递给过滤器

  18. 18

    Elasticsearch 在聚合中指定索引过滤器

  19. 19

    如何在Tableau中的过滤器条件公式中将“过滤器”设置为“全部”?

  20. 20

    ngGrid如何在多个列(例如Excel数据过滤器)上创建过滤器?

  21. 21

    如何在过滤器数据表中使用全局过滤器

  22. 22

    如何在 angular2 中创建独特的过滤器过滤器组件

  23. 23

    如何过滤数据过滤器jQuery

  24. 24

    过滤数组:如何订购过滤器

  25. 25

    如何使用Angular货币过滤器指定与默认货币不同的语言环境?

  26. 26

    如何为ng-repeat指定自定义过滤器功能?

  27. 27

    如何为AWS ec2 describe-vpc-peering-connections指定多个过滤器?

  28. 28

    如何使用Angular货币过滤器指定与默认货币不同的语言环境?

  29. 29

    如何在Java中的Apache Spark Streaming中为文件名模式定义文件过滤器?

热门标签

归档