我是靠谱客的博主 典雅万宝路,最近开发中收集的这篇文章主要介绍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设置背景颜色所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部