在我的应用程序中,我想将“另存为”对话框作为工作表对话框,因此我创建了QFileDialog
的实例,而不是使用静态方法getSaveFileName
。
当我创建QFileDialog
的实例时,我正确地传递了所有必需的参数,但是当对话框仅在第一次显示正确的文件名时显示时,Qt之后只显示“无标题”作为文件name.Even虽然我提供了正确的文件名。
我正在使用Qt 5.3。操作系统:Mac:10.9。
有人遇到过这个问题吗?
我已经看到了这里提到的类似问题:https://bugreports.qt.io/browse/QTBUG-36212,但是这里再次使用了静态方法。
我通过在Qt Creator中创建了一个项目(5.3.1 Clang 5.0(Apple),64位)进行了一些测试,这个项目只有QPushButton
点击后显示另存为对话框。
第一次输出正确:
第二次,文件名始终显示为“无标题”:
我的代码非常简单:
#include “mainwindow.h”
#include “ui_mainwindow.h”
#include <QFileDialog>
#include <QPushButton>
#include <QLayout>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
QPushButton *pButton = new QPushButton( “Save As..”, this );
connect( pButton,SIGNAL),this,SLOT)); setCentralWidget( pButton );
}
MainWindow::~MainWindow()
{
}
void MainWindow::OnClicked()
{
QFileDialog *pFile = new QFileDialog ( this, “TestApplication”, “BoomBoom”, “.jpg” );
pFile->setAcceptMode( QFileDialog::AcceptSave );
pFile->setWindowModality( Qt::WindowModal ); int statusCode = pFile->exec();
}