0

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 で配布するためにサンドボックス化すると、コードが機能しません。アプリが一瞬フリーズします。何か助けはありますか?

4

2 に答える 2

1

この記事は参考になるはずですhttp://www.digia.com/en/Blogs/Qt-blog/Pasi_Matilainen/Dates/2012/4/How-to-Publish-Qt-Applications-in-the-Mac-App-Store /

tldr;

Mac App Store に公開するには、Qt 4.8.1 を使用する必要があります

サンドボックスでのファイル保存ダイアログの使用

ファイル保存ダイアログでは、サンドボックス内で正しく機能するために、空でないデフォルトのファイル名が必要です。次のように、保存ダイアログにデフォルトのファイル名を指定できます。

QString fileSavePath = QFileDialog::getSaveFileName(this, "Save file", "default filename");

または、自分でダイアログ インスタンスを作成する場合:

QFileDialog *fileSaveDialog = new QFileDialog(this);
fileSaveDialog->setAcceptMode(QFileDialog::AcceptSave);
fileSaveDialog->selectFile("default filename");

ファイルを開くダイアログが正しく機能するために、特別な設定は必要ありません。

しかし、何も見逃さないように、記事全体を読む必要があると思います

于 2012-11-30T11:25:00.977 に答える
0

サンドボックスでは、さまざまなファイルまたはディレクトリに対する権限を取得するためにNSOpenPanelandを使用する必要があります。NSSavePanel

Powerbox and File System Access Outside of Your Containerをご覧ください。

于 2012-11-29T16:26:48.967 に答える