2016-07-07 35 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