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;