我无法使用Qt 4.8更改QFileDialog的当前目录.相同的代码在Windows和Mac OS 10.6 Snow Leopard上运行良好.如果我不使用本机Mac OS X对话框,它也可以正常工作.
这有效:
fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop",QString(),0,QFileDialog::DontUseNativeDialog);
Run Code Online (Sandbox Code Playgroud)
这不起作用:
fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop");
Run Code Online (Sandbox Code Playgroud)
看起来大多数情况下它会打开最后一次调用getOpenFileName的最后一个路径.
小智 7
在Mavericks上遇到与Qt5.2.0相同的问题......我找到了一个解决方法:在您要选择的目录中附加一个虚拟文件名.但是,请确保不要在Windows上执行此操作,因为用户将看到它.
QString dir = "/Users/myuser/Desktop";
#if defined(__APPLE__)
dir += "/MyFile.txt";
#endif
fn = QFileDialog::getOpenFileName(this, "Select File", dir);
Run Code Online (Sandbox Code Playgroud)
另外,对于像我这样实例化文件对话框的人,因为他们需要更多选项,你也可以这样做:
QFileDialog fileDialog(this, "Select File");
#if defined(__APPLE__)
fileDialog.selectFile(dir + "/MyFile.txt");
#else
fileDialog.setDirectory(dir);
#endif
...
Run Code Online (Sandbox Code Playgroud)
这是Qt的一个bug据说是固定在Qt的5.0.1和Qt 4.8.4(尽管它似乎在4.8.4被人们仍然重现的(包括我自己)).
这个错误在JIRA中被报告为QTBUG-20771,QTBUG-28161,最后是QTBUG-35779(它似乎最终完全解决了Qt 5.2.1中的问题).这是Gerrit补丁的链接.
| 归档时间: |
|
| 查看次数: |
3696 次 |
| 最近记录: |