PyQt - "告诉" QFileDialog忽略别名?

时间:2016-07-07 14:39:00

标签: python qt pyqt

我正在使用OSX而我正在尝试使用QFileDialog加载图像序列。 我的图像序列是:

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

然而,该序列中的所有图像都是另一个图像的别名,我们称之为original.tif

因此,当我尝试使用QFileDialog将文件名加载到字符串变量中时,它会返回原始图像的文件名而不是别名。

我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分: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的符号链接,   输入/var/tmp后,文件对话框将更改为/usr/tmp。如果   选项包括DontResolveSymlinks,文件对话框将处理   符号链接作为常规目录。