Qt如何显示socket等待响应时的等待对话框?

时间:2019-06-23 17:56:34

标签: c++ qt

我有一个发出http请求的函数,服务器可能需要一些时间才能做出响应。在等待期间,我想向用户显示一个请稍候对话框。

我尝试创建请稍候对话框,然后将http请求发送到服务器。 Please wait对话框会立即返回,没有错误,也没有显示任何内容,然后发出了http请求,但没有显示出Please please对话框。

如果我不执行http请求并允许继续执行,则会显示该对话框。

我认为解决方案可能是在新线程中创建Please wait对话框?

我的类clsAlert源自构造函数中的clsDialog:

    clsAlert::clsAlert(QString strText, QWidget* pParent, bool blnAutoCleanup) : QDialog(pParent), ui(new Ui::clsAlert) {
        ui->setupAlert(this);
        ui->lblText->setText(strText);
        ... set-up geometry ...
        show();
    }

用法示例:

    clsAlert* pPW = new clsAlert(clsAlert::mscszPleaseWait,mpParent);
    int intServer = intCreateSocket(szDestURL, pOutbio);
    ... a lot more source ...
    pPW->cleanup();

1 个答案:

答案 0 :(得分:1)

最后,我通过添加对以下内容的调用来解决此问题:

    QCoreApplication::processEvents();

在我致电后立即

    show();