Qt无边框窗口,关闭后再show,鼠标等事件不响应问题解决办法
问题描述
使用Qt做了一个无边框界面,关闭后再打开,子控件的点击以及hover效果不可用。
setWindowFlags(windowFlags() | Qt::Dialog | Qt::FramelessWindowHint);//去掉标题栏
解决方案:
在网上发现可以通过重写showEvent(QShowEvent* showEvent)函数,在里面调用setAttribute(Qt::WA_Mapped);可以解决问题记录一下。
void Class::showEvent(QShowEvent* showEvent)
{setAttribute(Qt::WA_Mapped);QDialog::showEvent(showEvent);
}