17

Mac OS X で「名前を付けて保存...」ダイアログを作成しようとしましたがQFileDialog::getSaveFileName()、関数を使用したくありません。この関数によって作成されたダイアログは、Mac OS X Lion では真にネイティブではないためです。そこで、ダイアログをQFileDialogオブジェクトとして作成することにしました:

auto export_dialog( new QFileDialog( main_window ) );
export_dialog->setWindowModality( Qt::WindowModal );
export_dialog->setFileMode( QFileDialog::AnyFile );
export_dialog->setAcceptMode( QFileDialog::AcceptSave );

1 つの問題を除いて、すべて正常に動作します。保存したファイルのデフォルト名を設定できないため、ユーザーは毎回この名前を手動で入力する必要があります。この関数では、3 番目の引数dir ( http://qt-project.org/doc/qt-4.8/qfiledialog.html#getSaveFileNameQFileDialog::getSaveFileName() )を使用してデフォルトのファイル名を設定できることを知っています。しかし、この関数なしでこのデフォルト名を設定するにはどうすればよいでしょうか?

関数を介して保存されたファイルのデフォルトのサフィックスを設定できますQFileDialog::setDefaultSuffix()が、デフォルトのサフィックスだけでなく、デフォルトの名前全体を設定する必要があります。

関数を使用しようとしましたQFileDialog::setDirectory()が、保存するファイルの名前なしで、保存するディレクトリのみを設定します。

Mac OS X Lion で Qt 4.8.1 を使用しています。

4

4 に答える 4

7

将来の訪問者のためにコメントにあったものをもう一度言います。次の行は、QFileDialog のデフォルト名として「myFileName」を配置します。

export_dialog->selectFile("myFileName");

ディスカッション: http://www.qtcentre.org/threads/49434-QFileDialog-set-default-name?highlight=QFileDialog

あまり役に立たないドキュメント: http://qt-project.org/doc/qt-4.8/qfiledialog.html#selectFile

于 2015-02-19T00:30:16.880 に答える