使用Qt::framelesswindowhint遇到的问题
在创建QDialog窗口后,使用exec显示窗口,发现始终看不到窗口,用法也跟平时一样;
开始以为是使用了
QScopedPointer<MyDialog> dialog(new MyDialog(this))
的问题,后续改成平时的写法:
MyDialog dialog(new MyDialog(this); dialog.exec();
也是一样;
排查时发现屏蔽 setWindowFlags(Qt::FramelessWindowHint);
窗口就出来了;
后续在其他人文章发现有较清晰的解释:
产生原因可参考此篇文章
直接原因是dialog被hide了;
解决方法:
setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);