c++ - Qt如何在套接字等待响应时显示请等待对话框?
问题描述
我有一个发出 http 请求的函数,服务器可能需要一些时间来响应。在等待期间,我想向用户显示一个请稍候对话框。
我尝试创建请稍候对话框,然后将 http 请求发送到服务器。请稍候对话框立即返回,没有错误且不显示任何内容,然后发出 http 请求但不显示请稍候对话框。
如果我不执行 http 请求并允许继续执行,则会显示对话框。
我想也许解决方案是在新线程中创建请等待对话框?
我的类 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();
推荐阅读
- html - Flexbox 改变元素的位置
- r - R:以字符串形式给出的表达式的条件评估,作为 dplyr mutate 的值
- amazon-web-services - AWS Sagemaker | 端点的区域特定安全凭证
- python - 如何在 python PyOpenGL 中旋转魔方的切片?
- django - 从 django url 中删除磅符号
- javascript - 输入类型复选框问题:第一次单击时 checkbox.value 和 setState 工作不正确
- c# - ef core 忽略导航属性
- python - 多处理中的输出相关错误
- r - r中的绘图线有时不绘制
- java - 从没有父键的火库中检索数据到文本视图