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.
在此先感谢您的帮助.
重新对未来访问者的评论中的内容,以下行将"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
我在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。
希望能有所帮助