我有一个发出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();
答案 0 :(得分:1)
最后,我通过添加对以下内容的调用来解决此问题:
QCoreApplication::processEvents();
在我致电后立即
show();