我是靠谱客的博主 典雅万宝路,最近开发中收集的这篇文章主要介绍QT_QPalette、背景颜色设置主+子widget背景颜色Obsolete设置背景颜色,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
catalog
- 设置主+子widget背景颜色
- Obsolete
- setColor
- setBrush
- 设置背景颜色
设置主+子widget背景颜色
this.palette().setColor(QPalette::Window, QColor("red");
son_widget.setParent(this);
son_widget.palette().setColor(QPalette::Window,
QColor("black");
虽然,你输出: son_widget.palette().window().color()
他确实的 black
但是,son_widget的颜色 就是red。
解决办法是: son_widget..setAutoFillBackground(true);
Obsolete
' 所有的widget,里面都自动带有palette(调色) '
' 他是管 ”调色“的, 即颜色这一块 '
setColor
' setColor时,第一个参数分为(ColorRole 和 ColorGroup) '
' ColorRole和ColorGroup都是”enum的类型” '
' ColorRole这个enum里有:QPalette::Window(背景色,即background) '
' QPalette::WindowText(字体,比如label) '
' 也就是说: QPalette::Window是ColorRole枚举类型里的 '
' ColorGroup是, QPalette::Active/Inactive(激活/非激活状态下的颜色) '
QPalette palette = this->palette(); // 当前组件,其内部的调色板
// 设置(::Window),即背景色 (不能是背景图片)
palette.setColor(QPalette::Window, QColor("red"));
// 字体(比如Label里字体的颜色)
palette.setColor(QPalette::WindowText, QColor("red"));
// 按钮上的字体颜色
palette.setColor(QPalette::ButtonText, QColor("red"));
this->setPalette(palette); // 别忘了再设置回去
setBrush
QPalette palet = this->palette();
QPixmap pix("F:/Photos/jpg1.jpg");
pix = pix.scaled(this->width(), this->height());
// 设置你自己的背景图片
palet.setBrush(QPalette::Window, QBrush(pix));
palet.setBrush(QPalette::Window, QBrush("green"));
this->setPalette(palet);
设置背景颜色
QPalette p;
p.setColor(QPalette::Window, QBrush("green"));
this->setPalette( p );
但注意的是: 你只能对当前这个“主widget”操作,
如果是“子widget” 是不生效的!!!
最后
以上就是典雅万宝路为你收集整理的QT_QPalette、背景颜色设置主+子widget背景颜色Obsolete设置背景颜色的全部内容,希望文章能够帮你解决QT_QPalette、背景颜色设置主+子widget背景颜色Obsolete设置背景颜色所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复