我有一个在Qt开发的Mac OS应用程序。我使用以下代码启动打开并保存文件对话框:
//opening
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open"), "", tr("*.ext"));
//saving
QString fileName = QFileDialog::getSaveFileName(this,
tr("Save"), "filename", tr("*.ext"));
当应用程序没有沙盒时,代码可以正常工作。但是,当我在沙盒上将其分发到Mac App Store上时,代码无效。该应用程序只是暂停了一会儿。有什么帮助吗?
答案 0 :(得分:1)
tldr;
您需要使用Qt 4.8.1发布到Mac App Store
在沙盒中使用文件保存对话框
文件保存对话框需要非空的默认文件名才能工作 正确地在沙箱内。您可以提供默认文件名 保存对话框如下:
QString fileSavePath = QFileDialog::getSaveFileName(this, "Save file", "default filename");
或者如果您自己创建对话框实例:
QFileDialog *fileSaveDialog = new QFileDialog(this); fileSaveDialog->setAcceptMode(QFileDialog::AcceptSave); fileSaveDialog->selectFile("default filename");
文件打开对话框不需要任何特殊设置即可正常工作。
但我认为你应该阅读整篇文章,这样你就不会错过任何东西
答案 1 :(得分:0)
在沙盒中,您必须使用NSOpenPanel
和NSSavePanel
才能获取不同文件或目录的权限。
看看Powerbox and File System Access Outside of Your Container。