码迷,mamicode.com
首页 > 其他好文 > 详细

使QScrollArea的背景透明,并且不影响子控件

时间:2014-06-24 13:34:31      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:style   color   get   set   问题   一个   

使QScrollArea的背景透明,乍看很easy,其实却是一个目前百度上百不出来的问题;

最容易想到的,用qss:

scrollArea->setStyleSheet("background-color:transparent;");

但是这样会使scrollArea所包含的所有子控件的背景也变成透明,大大不妥啊。。。

 

然后:

scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")

这个居然无效,大跌眼镜。。。

 

然后百度,有人问,没人答,再谷歌,靠,被墙了。。。

那么,看QT源码吧,找到QScrollArea他爹QAbstractScrollArea。。。

有发现,QWidget *viewport()。。。就是这个挡路的子控件惹的事了,

挡路的家伙,需要修理。。。这个是public的,再对这个设置一下qss就行了

所以,最后的解决办法是2步,按顺序来:

1:scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}")

2:scrollArea->viewport()->setStyleSheet("background-color:transparent;");

 好了,全透了,清爽了。

使QScrollArea的背景透明,并且不影响子控件,布布扣,bubuko.com

使QScrollArea的背景透明,并且不影响子控件

标签:style   color   get   set   问题   一个   

原文地址:http://www.cnblogs.com/falqs/p/3805003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!