QFileDialog 不解析符号链接

QFileDialog not resolving symlinks

opt = QFileDialog()
folder = QFileDialog.getExistingDirectory(self, "choose folder", path, options=opt.ShowDirsOnly)

这是我在文件浏览器中 select 文件夹的代码。 默认情况下它应该能够解析 symlinks。但我没有看到这种行为。

我select的文件夹是/home/user/abc,它是link到/home/user/xyz的符号。

>> print(f'Folder is: {folder}')
Folder is: /home/user/abc
>> print(f'Folder is: {os.path.realpath(folder)}')
Folder is: /home/user/xyz

是否可以通过 getExistingDirectory() 方法获取实际路径 (/home/user/xyz) 而无需稍后使用 os.path.realpath()?

在 Linux 中不可能,在 windows 中解决了符号 link。

QFileDialog 使用 QFileSystemModel 作为 QTreeView 模型,并默认启用 resolveSymlinks 属性 来完成这项工作,但正如 the docs 指出的那样:

resolveSymlinks : bool

This property holds whether the directory model should resolve symbolic links

This is only relevant on Windows.

By default, this property is true.

Access functions:

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

(强调我的)