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

我尝试创建请稍候对话框,然后将http请求发送到服务器。请稍候对话框会立即返回,没有错误且没有任何显示,然后发出http请求,但不显示请稍​​候对话框。

如果我不执行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();

最佳答案

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

    QCoreApplication::processEvents();


在我致电后:

    show();

10-08 04:08