qt 窗体透明问题

^卿^ 2017-04-21 12:48:57
图片中有三个窗体,主窗体,框一(注意框一中有四个按钮,而不是三个),框二。

现在的疑问有点多
一:为什么我的框一窗体在地图部分区域的背景色就变成黑色的了,而在上方区域就是透明的。
二:其实框一和框二都是继承于QWidget,只是一些属性设置不一样。

框二的代码
QMenuOpacity *myDialog= new QMenuOpacity(this);
myDialog->setAutoFillBackground(false); //这个不设置的话就背景变黑
myDialog->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
myDialog->setAttribute(Qt::WA_TranslucentBackground, true);
myDialog->show();

框一的代码
Widget *wid=new Widget(this);
wid->setGeometry(0,0,200,200);
// wid->setAutoFillBackground(false); //这个不设置的话就背景变黑
wid->setWindowFlags(Qt::Widget | Qt::FramelessWindowHint);
wid->setAttribute(Qt::WA_TranslucentBackground, true);
// wid->setWindowOpacity(0.5);// 针对于主窗体,子窗体无效
wid->show();
...全文
453 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
C_522 2017-05-02
  • 打赏
  • 举报
回复
以前也遇到过这个问题。不过你的是地图,我的是视频; 没有什么比较好的办法。 我处理的方法是: 1.框1框2在地图上时,两个框背景是黑色。这两个框的父类不要指定为主窗口。这样子就可以了; 2.主窗口的缩放移动,你如果想要两个框做对应的动作,只能自己手写事件。
^卿^ 2017-04-21
  • 打赏
  • 举报
回复
估计从布局上面去想办法基本不现实,因为主窗体的布局添加的只有地图,其他的都是悬浮于地图上面的。 我也实在弄不明白为何百度找的那么多透明方法在这个地图上就没效果了 http://blog.sina.cn/dpool/blog/s/blog_a6fb6cc90101i19x.html以及其他的一些方法
^卿^ 2017-04-21
  • 打赏
  • 举报
回复
如果采用框二的方法,每个子窗体都是相当于对话框,完全不受父窗体的的大小控制。比如我父窗体缩小后,框二就在父窗体外面去了
^卿^ 2017-04-21
  • 打赏
  • 举报
回复

16,816

社区成员

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

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