Qt中的调色板

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

QPalette 对象包含了 3 个状态的颜色描述

激活颜色组 (Active)

  • 组件获得焦点使用的颜色搭配方案

非激活颜色组 (Inactive)

  • 组件失去焦点使用的颜色方案

失效颜色组 (Disabled)

  • 组件处于不可用状态使用的颜色方案

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

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

理解 Qt 中的调色板

理解:

1. 调色板是存储组件颜色信息的数据结构

2. 组件外观所使用的颜色都定于调色板中

调色板的使用方法 

Qt 中调色板的使用

Widget.h

class Widget : public QWidget
{
    Q_OBJECT
private:
    QLabel m_label;
    QLineEdit m_edit;
    QPushButton m_button;

protected slots:
    void onButtonClicked();

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
};

Widget.cpp

Widget::Widget(QWidget* parent)
    : QWidget(parent), m_label(this), m_edit(this), m_button(this)
{
    m_label.move(20, 20);
    m_label.resize(150, 30);
    m_label.setText("test");

    QPalette p = m_label.palette();

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

    m_label.setPalette(p);

    m_edit.move(20, 70);
    m_edit.resize(150, 30);

    p = m_edit.palette();

    p.setColor(QPalette::Inactive, QPalette::Highlight, Qt::blue);
    p.setColor(QPalette::Inactive, QPalette::HighlightedText, Qt::white);

    m_edit.setPalette(p);

    m_button.move(20, 120);
    m_button.resize(150, 30);
    m_button.setText("test");

    connect(&m_button, &QPushButton::clicked, this, &Widget::onButtonClicked);
}

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()
{
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值