奇妙なことがあります。次のように 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&);
今問題は、ダイアログ ウィンドウで [OK] をクリックすると、完了するのを待たずにすぐに閉じることです。
なんで ?
機能が完了するまで待ってから閉じてください。