Macos QFileDialog::getOpenFileName不';t在Mac OS 10.8 Mountain Lion上设置初始目录

Macos QFileDialog::getOpenFileName不';t在Mac OS 10.8 Mountain Lion上设置初始目录,macos,qt,qt4,Macos,Qt,Qt4,我无法使用QFileDialog和Qt4.8更改当前目录。同样的代码在Windows和MacOS10.6SnowLeopard上运行良好。如果我不使用本机MacOSX对话框,它也可以正常工作 这项工作: fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop",QString(),0,QFileDialog::DontUseNativeDialog); 这不起作用: fn=QFileDialog::ge

我无法使用QFileDialog和Qt4.8更改当前目录。同样的代码在Windows和MacOS10.6SnowLeopard上运行良好。如果我不使用本机MacOSX对话框,它也可以正常工作

这项工作:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop",QString(),0,QFileDialog::DontUseNativeDialog);
这不起作用:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop");

看起来大多数时候它都会打开最后一次调用getOpenFileName的最后一个路径。

这是Qt中的一个错误,据报道在Qt 5.0.1和Qt 4.8.4中已经修复(尽管人们(包括我自己)似乎仍然可以在4.8.4中重现)


JIRA as和finally(似乎最终完全解决了Qt5.2.1中的问题)中都报告了此错误。这里是中的补丁链接。

与小牛上的Qt5.2.0有相同的问题。。。 我找到了一个解决方法:在要选择的目录中附加一个虚拟文件名。 但是,请确保不要在Windows上执行此操作,因为用户将看到它

QString dir = "/Users/myuser/Desktop";
#if defined(__APPLE__)
dir += "/MyFile.txt";
#endif
fn = QFileDialog::getOpenFileName(this, "Select File", dir);
此外,对于像我这样需要更多选项而实例化文件对话框的用户,您也可以执行以下操作:

QFileDialog fileDialog(this, "Select File");
#if defined(__APPLE__)
fileDialog.selectFile(dir + "/MyFile.txt");
#else
fileDialog.setDirectory(dir);
#endif
...

非常感谢。我已经搜索了Qt bug追踪器,但是没有找到那两个。这里仍然有相同的bug。。在QT 5.8上,同样的车还在这里。。关于qt5.8