调用this->setWindowFlags(Qt::FramelessWindowHint )后界面卡死

Extre_Lin 2015-06-12 01:47:10
在QMainWindow的够着函数中调用this->setWindowFlags(Qt::FramelessWindowHint )后界面卡死,卡死的控件有tab Widget 、
lineEdit、以及tabwidget中所有的控件!

右上的关闭按钮仍然有效!
求助!!
...全文
581 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sanda_Tong 2016-07-30
  • 打赏
  • 举报
回复
2楼的方法可以解决这个问题,感谢
gateslu 2015-06-19
  • 打赏
  • 举报
回复 1
这个是Qt5的一个bug, 原因是当你设置了Qt::FramelessWindowHint后, 如果在调用windId这个函数(在OpenGlView内部调用了), 底层会有一些bug(具体哪些bug我忘记了, 跟事件循环中的刷新事件有关), 不过我跟了代码之后找到一个解决方法, 我不知道楼主的问题是不是跟我一样 解决方法: 重写主窗口的showEvent函数
void MainWindow::showEvent(QShowEvent *ev)
{
#if QT_VERSION >= 0x050000
    this->setAttribute(Qt::WA_Mapped);
#endif

    QWidget::showEvent(ev);
}
Extre_Lin 2015-06-12
  • 打赏
  • 举报
回复
找到原因是调用了ui->scrollArea->setWidget(OpenGlView)可是为什么会卡死不明白……

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧