Chinaunix首页 | 论坛 | 博客
  • 博客访问: 360107
  • 博文数量: 50
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 641
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-09 22:35
个人简介

不怕你失败,就怕你爬不起来。

文章分类

全部博文(50)

文章存档

2014年(50)

我的朋友

分类: Windows平台

2014-10-21 01:54:08

QPalette类有两个枚举类型,

枚举

1、ColorGroup

  CorGroup指的是3中不同的状态(什么时候设置颜色):

   1>Active:获得焦点的状态。

   2>Inactive:未获得焦点的状态。

   3>Disable:不可用状态。

通常情况下,Active状态与Inactive状态下颜色显示是一致的,当然也可根据需要设置成不一样的颜色


2、ColorRole(设置什么颜色)。

  ColorRole指的是颜色主题,即对窗体中不同部位颜色的分类,如QPalette::Window是指背景色,QPalette::WindowText指的是前景色等。


  常用:


  QPalete::Window, 通常指窗口部件的背景色;

 QPalette:WindowText,通常指窗口不见的前景色(QLabel也可以使用);

 QPalette::Base,指文本输入窗口部件(比如QTextEdit,QLinedit,QPlainTextEdit等)的背景色

 QPalette::Text,与QPalette::Base一块使用,指文本输入窗口部件的前景色;

 QPalette::Button,指按钮窗口部件的背景色;

  QPalette::ButtonText,指按钮窗口部件的前景色


  QPalette::Highlight:用于设置文字高亮时的背景颜色

  QPalette::HighlightedText:用于设置文字高亮时的颜色

  QPalette:: Link:超链接文字颜色

  QPalette:: LinkVisted:超链接文字访问后的颜色

  (目前使用的很少,但是可以直接拿来用)因为,带有默认色

  QPalette:: Light:比Button的亮

  QPalette::Midlight:亮度在Light与Button之间

  QPalette::Dark:

  QPalette:: Mid

  QPalette::Shadow

例如:

//设置可以自动填充背景色  ui->label->setAutoFillBackground(true);  //设置背景色为Palette::Shadow  ui->label->setBackgroundRole(QPalette::Shadow);    ui->label2->setAutoFillBackground(true);  ui->label2->setBackgroundRole(QPalette::Light)

//---------------------------------------------------------------------------------------------------------------- 设置颜色的方法:


QPalette::setColor()针对某个ColoRole设置颜色

QPalette::setBrush()

针对某个ColoRole设置颜色, 可以设置图片


注意:在设置背景色的时候, 首先调用setAutoFillBackGround(true)。

按钮使用调色板

//对按钮使用palette----------  //设置按钮字体  ui->toolBt->setFont(QFont("宋体",20,QFont::Bold));  ui->toolBt->setAutoRaise(true);  ui->toolBt->setAutoFillBackground(true);  QPalette pl = ui->toolBt->palette();  //设置按钮文字颜色  pl.setColor(QPalette::ButtonText,QColor(Qt::red));  //使用setBrush设置图片  pl.setBrush(QPalette::Button,QBrush(QPixmap(":/new/resources/otherPage/tap_bg.png")));  ui->toolBt->setPalette(pl);

QTextBrowser或QTextEdit使用调色板(文字编辑框)

//设置部件文字属性  ui->plainTextEdit->setFont(QFont("宋体",20,QFont::Bold)); //有效果  ui->textBrowser->setFont(QFont("宋体",20,QFont::Bold)); //没有效果(QTextBrowser带有文字编辑功能)  QFont font = ui->textBrowser->font();  font.setCapitalization(QFont::AllUppercase);  ui->textBrowser->setFont(font); //有效果  //构造QPalette对象  QPalette p2;  //设置文本编辑框的背景色  p2.setColor(QPalette::Base,QColor(Qt::gray));  //设置文本编辑框文字的颜色  p2.setColor(QPalette::Text,QColor(Qt::red));  //设置文本编辑框高亮时的文字背景颜色(Active)  p2.setColor(QPalette::Active,QPalette::Highlight,QColor(Qt::white));  //设置文本编辑框高亮时文字的颜色(Active)  p2.setColor(QPalette::Active,QPalette::HighlightedText,QColor(Qt::blue));  //为保持文本状态一致(好看一些),在丢失焦点的时候设置颜色  p2.setColor(QPalette::Inactive,QPalette::Highlight,QColor(Qt::gray));  p2.setColor(QPalette::Inactive,QPalette::HighlightedText,QColor(Qt::red));  //将焦点应用到控件  ui->plainTextEdit->setPalette(p2);  ui->textBrowser->setPalette(p2);

实现效果:



转载自:

阅读(3751) | 评论(0) | 转发(0) |
0

上一篇:QToolButton设置扁平

下一篇:没有了

给主人留下些什么吧!~~