如何在 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 中过滤带有空格字符的文件名?的主要内容,如果未能解决你的问题,请参考以下文章