我有一些奇怪的东西,我有从 MainWINdow 触发的对话框窗口,如下所示:
//this is from main window
DialogUpdateContainer dialogUpdateContainer(this);
dialogUpdateContainer.getFileName(m_new_version_name);
if(dialogUpdateContainer.exec() == QDialog::Accepted )
{
return true;
}
在DialogUpdateContainer
我有这个简单的代码:
DialogUpdateContainer::DialogUpdateContainer( QWidget *parent) : QDialog(parent),
ui(new Ui::DialogUpdate)
{
ui->setupUi( this );
pHttpDownloadManager = new HttpDownloadManager();
connect(ui->buttonBox,
SIGNAL(accepted()),
this,
SLOT(OkSettingsHandler()));
connect(ui->buttonBox,
SIGNAL(rejected()),
this,
SLOT(CancelSettingsHandler()));
}
void DialogUpdateContainer::getFileName(QString& fileNameToDownload)
{
fileToDownload = fileNameToDownload;
}
void DialogUpdateContainer::OkSettingsHandler()
{
if(pHttpDownloadManager->downloadFile(fileToDownload))
{
done(Accepted);
}
}
void DialogUpdateContainer::CancelSettingsHandler()
{
done(Rejected);
}
现在的问题是,当我在对话框窗口中单击“确定”时,它立即关闭而不等待pHttpDownloadManager->downloadFile(fileToDownload&);
完成,它甚至永远不会完成(接受);
为什么 ?
我希望它等到它完成功能然后才关闭。