各位Qt达人,急,急,求设置子控件为半透明和改变背景色问题

主窗口是一个widget,在这个widget里面有一个属于它自己的子widget,也就是说子widget是主widget的一个数据成员,然后我在主widget的构造函数里... 主窗口是一个widget,在这个widget里面有一个属于它自己的子widget,也就是说子widget是主widget的一个数据成员,然后我在主widget的构造函数里初始化 childWidget=new ChildWidget(this);

请教一下
1. 如何设置该子widget为半透明
2. 如何设置该子widget的背景色
在该子widget的构造函数里搞了如下几句,貌似该子widget的背景色没有改变,揪心
QPalette myPalette;
myPalette.setColor(QPalette::Background,QColor(0,0,0));
this->setPalette(myPalette);

求各位大神解救,小弟感激不尽!
子widget修改背景色方法:
在子widget构造函数里加入如下几句:
this->setAutoFillBackground(true);//这个语句很重要,没有的话,子widget背景色修改不成功
QPalette myPalette;
myPalette.setBrush(backgroundRole(),QColor(10,25,69));
this->setPalette(myPalette);

至于让这个子widget半透明的问题
网上找的方法是:调用setWindowOpacity(0.5)
该方法经测试有如下问题:
如果我在父widget的构造函数里调用这个函数,没错,是可以实现半透明,但是那个是把父widget和子widget都设成半透明了,这个跟初衷不同
如果我在子widget的构造函数里调用这个函数,不管父widget还是子widget都没有任何反应

-----------------求达人提供解决问题的方案,感激不尽!
展开
 我来答
王力宏BH
2011-07-20
知道答主
回答量:9
采纳率:0%
帮助的人:3.8万
展开全部
ChildWidget->setStyleSheet("background-color:rgba(255,255,255,255)"); 透明度自己改最后一个值
背景图用QPalette函数就可以了 网上很多
我也刚学 呵呵

this->setAutoFillBackground(true);
QPalette myPalette;
myPalette.setBrush(this->backgroundRole(),QColor(10,25,69));//这句有误
this->setPalette(myPalette);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式