我使用的是OSX,我試圖使用QFileDialog加載圖像序列。 我的圖像序列是:PyQt - 「告訴」QFileDialog忽略別名?
image.000001.tif
image.000002.tif
image.000003.tif
...
然而,所有在該序列的圖像是另一種形象的別名,讓我們叫它original.tif
所以,當我嘗試使用的文件名加載到一個字符串變量QFileDialog,它返回原始圖像的文件名,而不是別名。
我該如何解決這個問題?
謝謝!
我使用的是OSX,我試圖使用QFileDialog加載圖像序列。 我的圖像序列是:PyQt - 「告訴」QFileDialog忽略別名?
image.000001.tif
image.000002.tif
image.000003.tif
...
然而,所有在該序列的圖像是另一種形象的別名,讓我們叫它original.tif
所以,當我嘗試使用的文件名加載到一個字符串變量QFileDialog,它返回原始圖像的文件名,而不是別名。
我該如何解決這個問題?
謝謝!
如果這些名字是符號鏈接到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
,則文件對話框將把 符號鏈接視爲常規目錄。
好的,非常感謝!當我得到文件名並將其放入QListWidget中時,我不會在底部獲得滑動箭頭,您可以拖動並查看完整文件路徑名(如果它很長)。它只發生在我使用DontResolveSymlinks選項時,不知道爲什麼。它可能是QT中的一個錯誤嗎? – Gambit2007
@ Gambit2007我不知道。有可能。但這應該是另一個問題的主題。 – Bakuriu