2011-08-01 16 views
0

XMLファイル(* .xml)を定義したxmlフィルタでQFileDialog :: getOpenFileNameを使用しようとしています。 )を使用して、ユーザーにXMLファイルの選択を依頼します。C++/QT - QFileDialog :: getOpenFileName filter * .xmlは、名前に日本語の文字を含むファイルを無効にします。

ただし、名前に日本語の文字(例:ラドクリフ.xml)が含まれているファイルがディレクトリにある場合、そのファイルは無効になっているため、ユーザーは選択できません。 a.xml、b.xmlなどのその他のファイルは選択可能であることが示されています。

どうしてですか?これを修正する方法はありますか?

ありがとうございます!

+1

これはタイプミスですよね?それは 'tr(" XMLファイル(* .xml) ")' – koan

+0

うん、そうだね。 – Anonymous

+0

あなたの問題をさらに解決するために、ファイルダイアログのコード全体を投稿する必要があると思います。 – koan

答えて

1

ファイルは "ラドクリフ.xml"ではありません "ラドクリフ.xml"です。ファイル名の最後にあるxmlはASCIIではありません。それらは全角ローマ字、つまりUniCode codepoints 0xFF00-0xFFEFです。

最終的に.xmlを入力するときにユーザーがASCII入力に切り替えることができます。または日本語用にローカライズされたソフトウェアの場合は、フィルタのリストに全角「* .xml」を追加します。

+0

賢い!!ありがとうございますが、私はこれを試した直後の答えとしてこれを確認します:) – Anonymous

+0

残念ながら、これはそうではありません - 端末のエンコーディングをASCIIに変更して再確認しました。カタカナのファイル名部分は奇妙に表示されていましたが、.xmlは.xmlのまま残っていました。したがって、.xmlは全角.xmlではありません。 – Anonymous

+0

また、あなたの答えを確認するために、私はフィルター( "\ *。\ *"、 "*")を渡して、フィルターを渡さないようにしました(その場合、すべてのファイルをQFileDialogに従って表示する必要があります)。しかし役に立たない。これらのファイルはまだ選択できませんでした!私には、MacのQtのバグのように見えます。 – Anonymous

関連する問題