自定义的QDialog,在最下化或者WIN+D后,再次显示,界面出现卡死的状态
最小化后,Qt会删除WA_Mapped属性,widget不会映射到屏幕上进行渲染,我们需要重新设置这个属性
方法
void MyDialog::changeEvent(QEvent *event)//或者是showEvent
{
if (event->type() == QEvent::WindowStateChange)
{
if (!isMinimized())
{
setAttribute(Qt::WA_Mapped);
}
}
QDialog::changeEvent(event);
}
这种方法有时候程序是不进此函数的,你需要在能出发的函数里设置Qt::WA_Mapped;
总之,想办法设置上这个属性,基本就解决了