对话框窗口在达到完成(已接受);之前关闭;

Dialog Window closed before reaching to done(Accepted);

本文关键字:窗口 对话框      更新时间:2023-10-16

我有一些奇怪的东西,我有一个从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&);完成它甚至永远不会完成(接受)
为什么
我希望它等到它完成了功能,然后才关闭。

非常奇怪:

 if(dialogUpdateContainer.exec() == QDialog::Accepted ) {
     return true;
  }

正常:

 if(dialogUpdateContainer.exec()==QDialog::Accepted ) {
     return true;
  }