深圳建设网站公司哪儿济南兴田德润有活动吗,html5可以做网站吗,wordpress仿站教程,十档行情免费网站项目场景#xff1a;
需要将一个弹窗提升至最前面#xff0c;那么弹出时直接使用raise()即可。 问题描述#xff1a;
使用QDialog::raise()时#xff0c;偶发界面阻塞卡死现象。 原因分析#xff1a; QDialog::raise()函数是置于顶部的作用#xff0c;但是如果使用不当…项目场景
需要将一个弹窗提升至最前面那么弹出时直接使用raise()即可。 问题描述
使用QDialog::raise()时偶发界面阻塞卡死现象。 原因分析 QDialog::raise()函数是置于顶部的作用但是如果使用不当会导致界面线程卡死弹窗是在界面线程弹出的因为QDialog::raise()会阻塞当前线程直到对话框置于顶部。 解决方案 异步调用QDialog::raise()通过QTimer::singleShot()实现。 QTimer::singleShot()是在主线程的的循环中调用的因此使用它并不会阻塞主线程。 用法示例
QDialog* dialog new QDialog();
dialog-show();
QTimer::singleShot(0, dialog, QDialog::raise);或者
QDialog* dialog new QDialog();
QTimer::singleShot(1, dialog, QDialog::raise);
dialog-show();