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,指button窗体部件的背景色;

  QPalette::ButtonText,指button窗体部件的前景色

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

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

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

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

(眼下使用的非常少,可是能够直接拿来用)由于,带有默认色

QPalette::Light:比Button的亮

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

QPalette::Dark:

QPalette::Mid

QPalette::Shadow

比如:

  1. //设置能够自己主动填充背景色
  2. ui->label->setAutoFillBackground(true);
  3. //设置背景色为Palette::Shadow
  4. ui->label->setBackgroundRole(QPalette::Shadow);
  5.  
  6. ui->label2->setAutoFillBackground(true);
  7. ui->label2->setBackgroundRole(QPalette::Light)

显示效果:

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

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

QPalette::setBrush()针对某个ColoRole设置颜色。能够设置图片

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

button使用调色板

  1. //对button使用palette----------
  2. //设置button字体
  3. ui->toolBt->setFont(QFont("宋体",20,QFont::Bold));
  4. ui->toolBt->setAutoRaise(true);
  5. ui->toolBt->setAutoFillBackground(true);
  6. QPalette pl = ui->toolBt->palette();
  7.  
  8. //设置button文字颜色
  9. pl.setColor(QPalette::ButtonText,QColor(Qt::red));
  10. //使用setBrush设置图片
  11. pl.setBrush(QPalette::Button,QBrush(QPixmap(":/new/resources/otherPage/tap_bg.png")));
  12. ui->toolBt->setPalette(pl);

效果:

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

  1. //设置部件文字属性
  2. ui->plainTextEdit->setFont(QFont("宋体",20,QFont::Bold)); //有效果
  3. ui->textBrowser->setFont(QFont("宋体",20,QFont::Bold)); //没有效果(QTextBrowser带有文字编辑功能)
  4. QFont font = ui->textBrowser->font();
  5. font.setCapitalization(QFont::AllUppercase);
  6. ui->textBrowser->setFont(font); //有效果
  7.  
  8. //构造QPalette对象
  9. QPalette p2;
  10. //设置文本编辑框的背景色
  11. p2.setColor(QPalette::Base,QColor(Qt::gray));
  12. //设置文本编辑框文字的颜色
  13. p2.setColor(QPalette::Text,QColor(Qt::red));
  14. //设置文本编辑框高亮时的文字背景颜色(Active)
  15. p2.setColor(QPalette::Active,QPalette::Highlight,QColor(Qt::white));
  16. //设置文本编辑框高亮时文字的颜色(Active)
  17. p2.setColor(QPalette::Active,QPalette::HighlightedText,QColor(Qt::blue));
  18.  
  19. //为保持文本状态一致(好看一些),在丢失焦点的时候设置颜色
  20. p2.setColor(QPalette::Inactive,QPalette::Highlight,QColor(Qt::gray));
  21. p2.setColor(QPalette::Inactive,QPalette::HighlightedText,QColor(Qt::red));
  22.  
  23. //将焦点应用到控件
  24. ui->plainTextEdit->setPalette(p2);
  25. ui->textBrowser->setPalette(p2);

实现效果:

Qt编程18:Qt调色板QPalette的使用的更多相关文章

  1. 【Qt编程】Qt学习笔记<三>

    1.      如果程序中使用了png以外格式的图片,在发布程序时就要将Qt安装目录下plugins中的imagineformats文件复制到发布文件中. 2.      在函数声明处快速添加函数定义 ...

  2. 【Qt编程】Qt学习之窗口间的相互切换

    在用Qt设计GUI时,经常要设计两个窗口之间的相互切换,即可以从一个窗口跳转到另一个窗口,然后又从另一个窗口跳转回原窗口.下面我们来介绍具体的实现方法: 工程建立及功能描述: 首先,我们建立Qt  G ...

  3. 【Qt编程】Qt学习之Window and Dialog Widgets

    Qt Creator 提供的默认基类只要QMainWindow.QWidget和QDialog三种.其中,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,这两个 ...

  4. 【Qt编程】Qt学习笔记<一>

    1.      在创建项目时,项目名和路径中都不能出现中文. 2.      可以使用Ctrl + "+"和Ctrl + "-"来改变程序的字体大小(Ctrl+ ...

  5. 【Qt编程】Qt学习之状态栏

    QStatusBar类提供一个水平条来显示状态信息.所谓状态信息,拿个简单的例子来说,当你在word中编辑时,左下角就会出现页面.字数等等信息.状态信息可以分为三类:临时信息,如一般的提示信息:正常信 ...

  6. 【Qt编程】Qt 小时钟

    Hello World! 学习编程语言的最简单最经典的小程序,当然Qt也不例外.在学习画图时,我觉得写个时钟小程序也是个比较好的开始.在之前的<Matlab及Java小时>一文中,我也从写 ...

  7. 【Qt编程】Qt学习笔记<二>

    1.      QApplication类和QWidget类都包含在QtGui模块中.所以我们可以只包含这个头文件即可. 2.      在c++中,用new分配了内存空间就需要用delete来释放空 ...

  8. 【Qt编程】Qt版扫雷

    学习要学会举一反三.在以前的<用matlab扫扫雷>一文中,我用matlab简单的编写了一个扫雷小程序.当然,与Windows自带的扫雷程序自然是不敢相提并论.今天我就用c++来写个扫雷程 ...

  9. 〖Qt编程〗Qt编程中的各种数据类型的相互转换

    char * 与 const char *的转换 char *ch1=”hello11″; const char *ch2=”hello22″; ch2 = ch1;//不报错,但有警告 ch1 = ...

随机推荐

  1. 最简单的视音频播放示例2:GDI播放YUV, RGB

    前一篇文章对“Simplest Media Play”工程作了概括性介绍.后续几篇文章打算详细介绍每个子工程中的几种技术.在记录Direct3D,OpenGL这两种相对复杂的技术之前,打算先记录一种和 ...

  2. 【有趣~】SFOJ-1711 Obey的恋爱、NYOJ-739 笨蛋难题

    笨蛋难题四 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 这些日子笨蛋一直研究股票,经过调研,终于发现xxx公司股票规律,更可喜的是 笨蛋推算出这家公司每天的股价, ...

  3. TCP/IP详解学习笔记(8)-DNS域名系统

    前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...

  4. (原创)LAMP教程2-安装虚拟机软件VirtualBox

    大家好,今天我们讲的是第二章,安装虚拟机软件VirtualBox 我先讲一下我的电脑的环境,可以看下面的图片说明 大家也看到了我的机子是64位的win7系统(为什么讲这个,因为接下来我们要下载的是ce ...

  5. document.getElementsByClassName方法的重写(OVERRIDE)

    众所周知,对于IE8以下的浏览器(IE8居然是WIN7预装的)没有document.getElementsByClassName,网上也有很多重写的方法,以下是本人在项目中所使用的方法 documen ...

  6. Android - LayoutInflater

    在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例 ...

  7. 用Windows Live Writer发来

    文字     package com.myeclipseide.example.myblog.secure; import com.opensymphony.xwork2.ActionSupport; ...

  8. Ensemble learning(集成学习)

    集成学习:是目前机器学习的一大热门方向,所谓集成学习简单理解就是指采用多个分类器对数据集进行预测,从而提高整体分类器的泛化能力. 我们在前面介绍了.所谓的机器学习就是通过某种学习方法在假设空间中找到一 ...

  9. Windwos Server 2008: 当网卡有多个IP地址时,如何指定缺省地址?

    这实际是一个当应用向外发起连接时,协议栈对源IP地址的选择问题.如果你的应用没有显式绑定一个本地地址,协议栈会选择一个"最佳"的本地地址来使用. 从 Vista 之后这个选择策略发 ...

  10. java动态代理与老式AOP实现

    JAVA的动态代理 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会 ...