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

比如:

    //设置能够自己主动填充背景色
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)。

button使用调色板

//对button使用palette----------
//设置button字体
ui->toolBt->setFont(QFont("宋体",20,QFont::Bold));
ui->toolBt->setAutoRaise(true);
ui->toolBt->setAutoFillBackground(true);
QPalette pl = ui->toolBt->palette(); //设置button文字颜色
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);

实现效果:

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. 【C#学习笔记】打开对话框并返回打开文件所在路径

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. DirectShow建立一个视频捕捉程序

    DirectShow 提供了用应用程序从适当的硬件中捕捉和预览音/视频的能力.数据源包括:VCR,camera,TV tuner,microphone,或其他的数据源.一个应用程序可以立刻显示捕捉的数 ...

  3. 【流媒體】live555—VS2010 下live555编译、使用及测试

    Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编 ...

  4. Pacman主题下给Hexo增加简历类型

    原文 http://blog.zanlabs.com/2015/01/02/add-resume-type-to-hexo-under-pacman-theme/ 背景 虽然暂时不找工作,但是想着简历 ...

  5. js函数——倒计时模块+无缝滚动

    倒计时 效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  6. Binary Tree Level Order Traversal java实现

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  7. MFC学习知识点20160715

    1.   sizeof()  :返回所查询目标所占用字节数 _countof() :返回所查询目标所含有元素个数 _countof 是 C++中计算一个固定大小数组长度的宏,比如: T arr[10] ...

  8. PHP命名规范【转】

      [转]谭博的个人网站 [类] 1.类名与类文件名采用驼峰式且首字母大写 2.类私有属性和私有方法名称以下划线开头 3.方法名使用驼峰式 [变量] 变量名使用小写字母加下划线 [函数] 函数名使用小 ...

  9. 关于MySQL数据类型timestamp的讨论

    在项目中用到了timestamp这个类型,该字段本意是用于存储改行记录的创建时间的,实际上这是一个很危险的设置: mysql官方文档上有这么一段话: The TIMESTAMP data type p ...

  10. Spark SQL概念学习系列之Spark SQL 架构分析(四)

    Spark SQL 与传统 DBMS 的查询优化器 + 执行器的架构较为类似,只不过其执行器是在分布式环境中实现,并采用的 Spark 作为执行引擎. Spark SQL 的查询优化是Catalyst ...