QFileDialog:如何在"另存为..."对话框中设置默认文件名

Den*_*nko 13 macos qt4 qfiledialog

我尝试在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 );
Run Code Online (Sandbox Code Playgroud)

一切正常,除了一个问题.我无法为保存的文件设置默认名称,因此用户每次都必须手动输入此名称.我知道该函数QFileDialog::getSaveFileName()允许通过第三个参数dir(http://qt-project.org/doc/qt-4.8/qfiledialog.html#getSaveFileName)设置默认文件名.但是如何在没有此功能的情况下设置此默认名称?

我可以通过QFileDialog::setDefaultSuffix()函数为保存的文件设置默认后缀,但我需要设置整个默认名称,而不仅是默认后缀.

我试图使用QFileDialog::setDirectory()函数,但它只设置保存目录,没有保存文件的名称.

我在Mac OS X Lion上使用Qt 4.8.1.

在此先感谢您的帮助.

Aar*_*ell 7

重新对未来访问者的评论中的内容,以下行将"myFileName"作为QFileDialog中的默认名称:

export_dialog->selectFile("myFileName");
Run Code Online (Sandbox Code Playgroud)

讨论:http://www.qtcentre.org/threads/49434-QFileDialog-set-default-name? highlight= QFileDialog

不太有用的文档:http://qt-project.org/doc/qt-4.8/qfiledialog.html#selectFile


Lou*_*kin 7

我在Google上搜索set default filename qfiledialog并在整个讨论中发生了。

我发现selectFile("myFileName");只有在文件实际存在的情况下,才可以使用。就我而言,目的是创建一个新文件,并可以选择覆盖现有文件。

对我有用的解决方案(Qt 5.3.2)如下:

QFileDialog svDlg;

QString saveFileName = svDlg.getSaveFileName(this, caption, preferredName, filter);
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,preferredName是包含“ C:/pre-selected-name.txt”的QString。

希望能有所帮助