C ++ / QT - QFileDialog :: getOpenFileName过滤器* .xml禁用名称中包含日文字符的文件

时间:2011-08-01 20:43:40

标签: c++ qt macos filter qfiledialog

我正在尝试使用QFileDialog :: getOpenFileName和xml过滤器定义的tr(“XML Files(* .xml)”)来要求用户选择XML文件。

但是,如果目录中的文件名称中包含日文字符(例如:ラドクリフ.xml),则显示该文件已禁用,因此用户无法选择该文件。其他文件(例如a.xml,b.xml)显示为可选。

为什么会这样?有没有办法来解决这个问题 ?

谢谢!

1 个答案:

答案 0 :(得分:1)

文件不是“ラドクリフ.xml”,它是“ラドクリフ.xml”注意文件名末尾的xml不是ASCII;它们是全宽罗马字母,即UniCode codepoints 0xFF00-0xFFEF

修复方法是让您的用户在最后键入.xml时切换回ASCII输入,或者如果您的软件已针对日语本地化,请将全宽“* .xml”添加到您的过滤器列表中。