各位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都没有任何反应
-----------------求达人提供解决问题的方案,感激不尽! 展开
请教一下
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都没有任何反应
-----------------求达人提供解决问题的方案,感激不尽! 展开
1个回答
展开全部
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);
背景图用QPalette函数就可以了 网上很多
我也刚学 呵呵
this->setAutoFillBackground(true);
QPalette myPalette;
myPalette.setBrush(this->backgroundRole(),QColor(10,25,69));//这句有误
this->setPalette(myPalette);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询