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;
相关推荐
冯汉栩1 小时前
Swift Control View,Label渐变颜色(源码)
开发语言·ios·swift
从小就看凹凸曼^o^2 小时前
Python基础5 - 字典与集合:(1)字典
开发语言·python
侧耳倾听1112 小时前
java 日志框架简介
java·开发语言
zlinear数据采集卡3 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
全栈技术负责人3 小时前
解密 MCP(Model Context Protocol):大模型时代的“Type-C”总线与三驾马车架构深度解析
开发语言·ai·架构
丰锋ff3 小时前
1.7在Qt窗口中添加右键菜单
开发语言·qt
Titan20243 小时前
Linux网络学习:套接字、UDP的封装与应用
linux·服务器·开发语言·网络·c++
流浪0014 小时前
Python基础语法(三):函数
开发语言·python
鸿芯微控科技4 小时前
压电点胶阀出胶量不稳定怎么排查?驱动波形、背压、点胶重量与Python分析
开发语言·python·压电点胶阀·精密点胶·点胶重量·流体控制
原野池予4 小时前
深入Java集合框架:HashMap源码解析(JDK 8)
java·开发语言