如何在 QFileDialog 中过滤带有空格字符的文件名?

Posted

技术标签:

【中文标题】如何在 QFileDialog 中过滤带有空格字符的文件名?【英文标题】:How to filter file names with space character in a QFileDialog? 【发布时间】:2020-05-08 20:06:21 【问题描述】:

使用 Qt 我想打开一个 QFileDialog,其中只显示那些包含空格字符的文件。

这是一个简单的例子:

QFileDialog::getOpenFileName(nullptr, "Open file", "/tmp", "My1stFilter (* *);;My2ndFilter (x y)");

但是 My1stFilter (* *) 匹配所有文件,而 My2ndFilter (y x) 匹配所有名称为“x”和名称为“y”的文件,而我只想拥有名称为“x y”的文件。 这并不奇怪,因为空白通常分隔不同的过滤模式(根据https://doc.qt.io/qt-5/qfiledialog.html#setNameFilter)

有没有办法在 QFileDialog 的名称过滤器中转义特殊字符(如空格)? (我在名称过滤器中的括号字符也有类似的问题。)

我尝试在空格前设置反斜杠或将整个模式放在单引号和双引号中但没有成功。

【问题讨论】:

【参考方案1】:

您需要放弃根本不支持此功能的本机文件对话框。然后,您可以使用代理模型根据您的条件进行过滤。

见Regular Expression Filter for QFileDialog

【讨论】:

以上是关于如何在 QFileDialog 中过滤带有空格字符的文件名?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 QFileDialog 的过滤参数问题?

spring mvc中如何过滤form提交数据中的空格?

带有默认目录的 QFileDialog

如何使用 QFileDialog 打开带有 .mid 后缀的文件

如何能过滤掉字符串里面的空格

如何在php中解析带有空格的空格分隔字符串?