Qt编程18:Qt调色板QPalette的使用
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的使用的更多相关文章
- 【Qt编程】Qt学习笔记<三>
1. 如果程序中使用了png以外格式的图片,在发布程序时就要将Qt安装目录下plugins中的imagineformats文件复制到发布文件中. 2. 在函数声明处快速添加函数定义 ...
- 【Qt编程】Qt学习之窗口间的相互切换
在用Qt设计GUI时,经常要设计两个窗口之间的相互切换,即可以从一个窗口跳转到另一个窗口,然后又从另一个窗口跳转回原窗口.下面我们来介绍具体的实现方法: 工程建立及功能描述: 首先,我们建立Qt G ...
- 【Qt编程】Qt学习之Window and Dialog Widgets
Qt Creator 提供的默认基类只要QMainWindow.QWidget和QDialog三种.其中,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,这两个 ...
- 【Qt编程】Qt学习笔记<一>
1. 在创建项目时,项目名和路径中都不能出现中文. 2. 可以使用Ctrl + "+"和Ctrl + "-"来改变程序的字体大小(Ctrl+ ...
- 【Qt编程】Qt学习之状态栏
QStatusBar类提供一个水平条来显示状态信息.所谓状态信息,拿个简单的例子来说,当你在word中编辑时,左下角就会出现页面.字数等等信息.状态信息可以分为三类:临时信息,如一般的提示信息:正常信 ...
- 【Qt编程】Qt 小时钟
Hello World! 学习编程语言的最简单最经典的小程序,当然Qt也不例外.在学习画图时,我觉得写个时钟小程序也是个比较好的开始.在之前的<Matlab及Java小时>一文中,我也从写 ...
- 【Qt编程】Qt学习笔记<二>
1. QApplication类和QWidget类都包含在QtGui模块中.所以我们可以只包含这个头文件即可. 2. 在c++中,用new分配了内存空间就需要用delete来释放空 ...
- 【Qt编程】Qt版扫雷
学习要学会举一反三.在以前的<用matlab扫扫雷>一文中,我用matlab简单的编写了一个扫雷小程序.当然,与Windows自带的扫雷程序自然是不敢相提并论.今天我就用c++来写个扫雷程 ...
- 〖Qt编程〗Qt编程中的各种数据类型的相互转换
char * 与 const char *的转换 char *ch1=”hello11″; const char *ch2=”hello22″; ch2 = ch1;//不报错,但有警告 ch1 = ...
随机推荐
- Ejabberd源码解析前奏--配置
一.基本配置 配置文件将在你第一次启动ejabberd时加载,从该文件中获得的内容将被解析并存储到内部的ejabberd数据库中,以后的配置将从数据库加载,并且任何配置文件里的命令都会被添加到 ...
- 头痛的ASCII和preg_replace()
说这个之前,大家先看下这条语句: preg_replace("/\<\?\=(\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\[\]\"\'\$\x7f- ...
- C# 邮件发送系统
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 【转】发布python的包至pypi服务器
[原文链接]http://yejinxin.github.io/distribute-python-packages-to-pypi-server/ 使用pip或easy_install可以管理和安装 ...
- MFC图形图像
一.CDC类 CDC类简介 CDC类是一个设备上下文类. CDC类提供了用来处理显示器或打印机等设备上下文的成员函数,还有处理与窗口客户区关联的显示上下文的成员函数.使用CDC的成员函数可以进行所有的 ...
- HDU 5311
把anniversary分成三个区间,分别枚举每个区间在给定模板中的长度.每次枚举完一个区间,记录下区间长度和起始坐标,下次从剩下长度开始枚举,避免重复. #include<iostream&g ...
- Windows Azure 不能ping通的解决方案
Windows Azure 不能ping通如何解决? 为了避免Ping Flood攻击,Windows Azure不开放对外ICMP通讯协定,所以使用ping命令我们是无法ping通的.在微软资料中心 ...
- CentOS VPS创建pptpd VPN服务
原文地址http://www.hi-vps.com/wiki/doku.php?id=xen_vps_centos6_install_pptpd CentOS VPS创建pptpd VPN服务 Xen ...
- Java学习笔记(3)
“当你定义出一组类的父型时,你可以用子型的任何类来填补任何需要或期待父型的位置” “运用多态时,引用类型可以是实际对象类型的父类”Animal myDog = new Dog(); 三种方法可以防止某 ...
- storm,hbase和storm-kafka-0.8-plus兼容性问题
1 org.slf4j.impl.StaticLoggerBinder.SINGLETON错误 方案: 确保slf4j-api-1.5.6.jar 和slf4j-log4j12-1.5.6.jar ...