我有一个发出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();