Qt学习笔记之QPalette调色板类

QPalette通过获取控件或窗口的调色板对象(palette)对该控件或窗口进行色彩设置

可设置该widget不同状态的色彩(ColorGroup):

QPalette::Active      获得焦点的状态下

QPalette::inactive   未获得焦点的状态下

QPalette::Disable    不可用的状态下

设置不同部位的颜色(ColorRole):

QPalette::Window     对窗体的背景颜色进行设置

QPalette::WindowText     对窗体中的文字(比如Label中的文字进行设置,无法影响Edit

QPalette::Button     对按钮进行设置(但貌似无法动态更新,直接使用无效果

QPalette::ButtonText     对按钮文字的颜色进行设置(QPushButton,QComboBox的小三角

QPalette::Base    主要用于文本输入小部件的背景颜色(QComboBox的下拉列表背景色也会更改

函数:

用于设置单一颜色:

void QPalette::setColor(ColorGroup group, ColorRole role, const QColor &color)

void QPalette::setColor(ColorRole role, const QColor &color)

用于设置多样性的颜色(图片背景,渐变之类:

void QPalette::setBrush(ColorGroup group, ColorRole role, const QBrush &brush)

void QPalette::setBrush(ColorRole role, const QBrush &brush)

来自 《Qt5开发与实例(第三版)》 的一个例子

效果图:

贴一下 颜色选择ComboBox的代码

#include "combobox.h"

ComboBox::ComboBox(QWidget * parent)
 :QComboBox(parent)
{
 QStringList list = QColor::colorNames();//获取颜色列表
 for(QString str : list){
  QPixmap pix(QSize(70, 20)); //图像对象
  pix.fill(QColor(str));  //填充颜色
  addItem(QIcon(pix), str); //添加进ComboBox
  setIconSize(QSize(70,20)); //设置Icon也就是颜色块的大小

  //设置comboBox的下拉列表的尺寸调整策略为符合内容大小(自适应
  setSizeAdjustPolicy(QComboBox::AdjustToContents);
 }
}

设置各部分颜色的槽函数

void Palette::setWindowColor(QString color)
{
 QPalette palette = this->palette();
 palette.setColor(QPalette::Window, QColor(color));
 this->setPalette(palette);

}

void Palette::setWindowTextColor(QString color)
{
 QPalette palette = showFrame->palette();
 palette.setColor(QPalette::WindowText, QColor(color));
 showFrame->setPalette(palette);
}

void Palette::setButtonColor(QString color)
{
 QPalette palette = showFrame->palette();
 palette.setColor(QPalette::Button, QColor(color));
 showFrame->setPalette(palette);

 showFrame->update();
}

void Palette::setBtnTextColor(QString color)
{
 QPalette palette = showFrame->palette();
 palette.setColor(QPalette::ButtonText, QColor(color));
 showFrame->setPalette(palette);
}

void Palette::setBaseColor(QString color)
{
 QPalette palette = showFrame->palette();
 palette.setColor(QPalette::Base, QColor(color));
 showFrame->setPalette(palette);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Qt学习笔记之QPalette调色板类

    QPalette通过获取控件或窗口的调色板对象(palette)对该控件或窗口进行色彩设置 可设置该widget不同状态的色彩(ColorGroup): QPalette::Active      获得焦点的状态下 QPalette::inactive   未获得焦点的状态下 QPalette::Disable    不可用的状态下 设置不同部位的颜色(ColorRole): QPalette::Window     对窗体的背景颜色进行设置 QPalette::WindowText     对

  • PHP学习笔记 用户注册模块用户类以及验证码类

    所以,把第一章,可重用类的代码贴出来,便于以后查阅以及供给有需要的朋友. :User类,包括读取和设置数据库,以及保存更改交互 复制代码 代码如下: <?php class User{ private $uid; private $fields; public function __construct(){ $this->uid=null; $this->fields=array('username'=>'','password'=>'','emailAddr'=>''

  • Ruby简洁学习笔记(二):类继承、属性、类变量

    1.如何声明一个子类 复制代码 代码如下: class Treasure < Thing 这样Thing类中的属性name,description都被Treasure继承 2.以下三种方式传入父类initialize方法的参数分别是什么? 复制代码 代码如下: # This passes a, b, c to the superclass def initialize( a, b, c, d, e, f ) super( a, b, c ) end # This passes a, b, c t

  • C#学习笔记整理_浅谈Math类的方法

    c#中Math类的方法 Math.Abs 已重载. 返回指定数字的绝对值. Math.Acos 返回余弦值为指定数字的角度. Math.Asin 返回正弦值为指定数字的角度. Math.Atan 返回正切值为指定数字的角度. Math.Atan2 返回正切值为两个指定数字的商的角度. Math.BigMul 生成两个 32 位数字的完整乘积. Math.Ceiling 已重载. 返回大于或等于指定数字的最小整数. Math.Cos 返回指定角度的余弦值. Math.Cosh 返回指定角度的双曲余

  • TypeScript 学习笔记之 typeScript类定义,类的继承,类成员修饰符

    目录 1.类的定义 2.类的继承 3.修饰符 前言: typeScript 中的类与 ES6 中的类非常相似,如果不知道 ES6 中的类,建议先学习下 ES6 中的 class .本篇文章重点介绍 typeScript 中的类定义.继承以及修饰符. 1.类的定义 类描述了所创建的对象共同的属性和方法.typeScript 支持面向对象的所有特性,比如类.接口等. 在 typeScript 中定义类的时候,使用 class 关键字,类名首字母使用大写,类可以包含以下三个模块: ​字段​ - 字段是

  • OpenCV2学习笔记之视频流读取与处理

    目录 前言 一. 读取视频序列 二. 处理视频帧 OpenCV:打开摄像头获取视频流 总结 前言 由于项目需要,计划实现九路视频拼接,因此必须熟悉OpenCV对视频序列的处理.视频信号处理是图像处理的一个延伸,所谓的视频序列是由按一定顺序进行排放的图像组成,即帧(Frame).在这里,主要记录下如何使用Qt+OpenCV读取视频中的每一帧,之后,在这基础上将一些图像处理的算法运用到每一帧上(如使用Canny算子检测视频中的边缘). 一. 读取视频序列 OpenCV提供了一个简便易用的框架以提取视

  • AngularJS学习笔记之表单验证功能实例详解

    本文实例讲述了AngularJS学习笔记之表单验证功能.分享给大家供大家参考,具体如下: 一.执行基本的表单验证 <!DOCTYPE html> <html ng-app='exampleApp'> <head> <meta charset="UTF-8"> <title>表单</title> <script src="../../js/angular.min.js" type="

  • JavaWeb学习笔记分享(必看篇)

    自定义列表 <dl></dl>:表示列表的范围 **在里面 <dt></dt>:上层内容 **在里面 <dd></dd>:下层内容 有序列表 <ol></ol>:有序列表的范围 --属性 type:设置排序方式,1(默认),a,i.. **在ol标签里面 <li>具体内容</li> 无序列表 <ul></ul>:无序列表的范围 --属性 type:circle(空

  • DB2 UDB V8.1管理学习笔记(三)

    正在看的db2教程是:DB2 UDB V8.1管理学习笔记(三).强制断开已有连接,停止实例并删除.  $ db2idrop -f instance_name 用于在UNIX下迁移实例. $ db2imigr instance_name 更新实例,用于实例获得一些新的产品选项或修订包的访问权. $ db2iupdt instance_name 获取当前所处的实例. $ db2 get instance 当更新实例级别或数据库级别的参数后,有些可以立即生效,有些需要重新启动实例才可生效.immed

  • prototype 1.5 & scriptaculous 1.6.1 学习笔记

    最近做otalk,开始是基于prototype1.4的,后来因为我加上了scriptaculous 1.6.1,她要求prototype的版本是1.5的,所以就升级到了1.5,看着demo学习起了scriptaculous的用法. 用法稍后整理,因为在使用过程中很多次效果都不让自己满意,想看代码又看不明白,经过一次折磨,我下定决心,一定要把scriptaculous和prototype的代码看明白! 这里作为我的学习笔记,可能没有什么顺序了逻辑,等到学习完,最后整理 首先是定义类  看着笑笑老师

随机推荐