2016-07-07 6 views
0

私はOSXを使用しており、QFileDialogを使用して画像シーケンスをロードしようとしています。 私のイメージシーケンスは次のとおりです。PyQt - エイリアスを無視するようにQFileDialogに指示しますか?

image.000001.tif 
image.000002.tif 
image.000003.tif 
... 

は、しかし、そのシーケンス内のすべての画像が別の画像の別名である、私が使用して文字列変数にファイル名をロードしようとするのは、そうoriginal.tif

それを呼びましょうQFileDialog、エイリアスではなく元のイメージのファイル名を返します。

どうすれば修正できますか?

ありがとうございます!

答えて

3

それらの名前がoriginal.tifからシンボリックリンクがある場合は、シンボリックリンク解決を無効にすることもできます。

dialog.setOptions(QFileDialog.DontResolveSymlinks); 

options propertyのドキュメントは、デフォルトではすべてのオプションを意味し、無効になっていると述べているデフォルトQFileDialogによってはシンボリックリンクを解決しますか? シンボリックリンク(シンボリックリンク)を解決するとは、ポイントされている実際のファイルの名前を取得することです。あなたは、このようなgetOpenFileNameなどの静的メソッドを使用している場合、あなたはまだ、たとえば、最後のパラメータとしてダイアログのオプションを渡すことができ


注:

QFileDialog.getOpenFileName(parent, "Open file", "/home/user", "", None, 
          QFileDialog.DontResolveSymlinks); 

はまた、注意して、このためのドキュメントこの方法は言う:UNIX/X11上で

を、ファイルダイアログの正常な動作が解決し シンボリックリンクをたどることです。たとえば、/usr/tmp/var/tmpへのシンボリックリンクの場合、 /usr/tmpと入力した後、ファイルダイアログは/var/tmpに変わります。 オプションにDontResolveSymlinksが含まれている場合、ファイルダイアログは のシンボリックリンクを通常のディレクトリとして扱います。

+0

よろしくお願いいたします。私はファイル名を取得し、QListWidgetに入れて私はドラッグし、(長い場合は)完全なファイルパス名を参照することができます下部にそのスライディング矢印を取得しません。それは私がそのDontResolveSymlinksオプションを使用したときにのみ起こり、理由は分かりません。それはQTのバグでしょうか? – Gambit2007

+1

@ Gambit2007わかりません。それは可能性があります。しかし、それは他の質問の話題になるはずです。 – Bakuriu

関連する問題