【问题标题】:Filtering directories displayed in a QFileDialog过滤 QFileDialog 中显示的目录
【发布时间】:2020-05-19 19:55:08
【问题描述】:

我有一个使用 getExistingDirectory 方法的现有 QFileDialog,我试图修改该方法以过滤掉某些目录。现在,显示了目标位置的所有目录,但我将有一个需要过滤的目录名称列表/数组(即:我只想显示这些目录,而不是其他目录)。

现在,文件对话框是这样创建的:

QString dirpath = MvsFileDialog::getExistingDirectory(result_code,
                                                          this,
                                                          tr("Select Training"),        //title
                                                          tr("Library from list"), //subtitle
                                                          library,       //starting dir
                                                          QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); //options

MvsFileDialog 类只是 QFileDialog 类的扩展。

我将如何修改此方法调用以过滤列表中的目录?

【问题讨论】:

    标签: c++ qt qt5


    【解决方案1】:

    您是否检查过在 QFileDialog 上设置名称过滤器是否有效?

    https://doc.qt.io/qt-5/qfiledialog.html#setNameFilter

    类似:

    auto dialog = QFileDialog(parent, tr("Select Training"), library, "dir1;dir2");
    dialog.setFileMode(QFileDialog::Directory);
    dialog.setOption(QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
    

    构造函数中的第4个参数是名称过滤器,也可以用QFileDialog::setNameFilter(const QString &filter);来设置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      相关资源
      最近更新 更多