setWindowFlags(Qt::FramelessWindowHint) 的使用问题

lumotuweperfect 2013-05-07 11:30:40
我要实现的功能是在主窗口下单击按钮弹出一个子窗口。子窗口要去掉标题栏。
在网上查找了一些资料,去掉qt标题栏使用setWindowFlags(Qt::FramelessWindowHint)。使用这个函数确实可以去掉标题栏,但是去掉标题栏的子窗口自动变成透明显示模式,如图1所示。怎么让去掉标题栏的子窗口取消透明显示模式????
主窗口


点击按钮,子窗口的构造函数中使用setWindowFlags(Qt::FramelessWindowHint)的效果。 子窗口是透明显示模式


点击按钮,子窗口没有使用setWindowFlags(Qt::FramelessWindowHint)的效果。

...全文
11238 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
雲天之巔 2013-05-07
  • 打赏
  • 举报
回复
我极度怀疑啊 setWindowFlags(Qt::FramelessWindowHint); 只是使窗口的标题栏隐藏 如果想要透明还需要这样实现的: setAttribute(Qt::WA_TranslucentBackground, true); 所以你看下 是不是其他地方加的透明的代码了。
lumotuweperfect 2013-05-07
  • 打赏
  • 举报
回复
[quote=引用 2 楼 jdwx1 的回复:] 成功了 。。。 谢谢!!
lumotuweperfect 2013-05-07
  • 打赏
  • 举报
回复
成功了 。。。 谢谢!!
xcyl 2013-05-07
  • 打赏
  • 举报
回复
setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
jdwx 2013-05-07
  • 打赏
  • 举报
回复
不要传this指针给子窗口。 dialog dlg(this); dlg.exec(); 改为 dialog dlg; dlg.exec();

16,203

社区成员

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

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