Qt——Qt中的调色板

1.QPalette类包含了组件状态的颜色组

  • 激活颜色组(Active):组件获得焦点使用的颜色搭配方案
  • 非激活颜色组(Inactive):组件失去焦点使用的颜色方案
  • 失效颜色组(Disabled):组件处于不可用状态使用的颜色方案

2.QPalette中的颜色组定义了组细节的颜色值

QPalette::ColorRole中的常量值用于标识组件细节

复制代码
#include "Widget.h"
#include <QPalette>

Widget::Widget(QWidget *parent) : QWidget(parent)
    , m_button(this), m_edit(this), m_label(this)
{
    m_label.move(10, 10);
    m_label.resize(150, 25);
    m_label.setText("Text");

    m_edit.move(150, 25);
    m_edit.resize(150, 25);

    m_button.move(10, 80);
    m_button.resize(150, 25);
    m_button.setText("Text");

    connect(&m_button, SIGNAL(clicked()), this, SLOT(onButtonClicked()));

    QPalette p = m_button.palette();
    p.setColor(QPalette::Active, QPalette::ButtonText, Qt::red);
    p.setColor(QPalette::Inactive, QPalette::ButtonText, Qt::red);

    m_button.setPalette(p);

    p = m_edit.palette();
    p.setColor(QPalette::Inactive, QPalette::Highlight, Qt::blue);
    p.setColor(QPalette::Inactive, QPalette::HighlightedText, Qt::white);
    m_edit.setPalette(p);
}

void Widget::onButtonClicked()
{
    QPalette p = m_label.palette();

    p.setColor(QPalette::Active, QPalette::WindowText, Qt::green);
    p.setColor(QPalette::Inactive, QPalette::WindowText, Qt::green);

    m_label.setPalette(p);
}
Widget::~Widget() = default;
相关推荐
zz-zjx3 分钟前
Python实用转换模板
开发语言·前端·python
zuozong_6 分钟前
C++类与对象
开发语言·c++·算法
lfSeanDragon11 分钟前
数据结构-前缀树(Trie)
开发语言·c#
励志不掉头发的内向程序员15 分钟前
【LibreCAD 2D架构】从两个坐标到图形实体:RS_ActionDrawLine如何创建RS_Line
开发语言·c++·qt·学习·系统架构
Thomas214319 分钟前
scala 闭包
开发语言·后端·scala
sunshine22 girl25 分钟前
Java学习一 环境配置1 安装JDK,配置环境变量
java·开发语言·学习
似水এ᭄往昔30 分钟前
【Qt】--常用控件(按钮类控件)
开发语言·qt
范什么特西43 分钟前
一些常用名词
开发语言·前端·javascript
吴声子夜歌1 小时前
ApacheCommons——commons-configuration2(多数据源配置统一管理与热加载)
java·开发语言·算法·apache
乌夷1 小时前
JavaScript 的事件循环
开发语言·javascript·ecmascript