文章目录
1 Qt中的调色板
QPalette类包含了组件状态的颜色组,主要包含3个状态的颜色描述:
- 激活颜色组(Active):组件获得焦点使用的颜色搭配方案。
- 非激活颜色组(Inactive):组件失去焦点使用的颜色方案。
- 失效颜色组(Disabled):组件处于不可用状态使用的颜色方案。
QPalette中的颜色组定义了组细节的颜色值,QPalette::ColorRole中的常量值用于标识组件细节。

理解Qt中的调色板:

调色板的使用方式:

编程实验:Qt中调色板的使用
Widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui/QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
class Widget : public QWidget
{
Q_OBJECT
QPushButton m_button;
QLineEdit m_edit;
QLabel m_label;
protected slots:
void onButtonClicked();
public:
Widget(QWidget *parent = 0);
~Widget();
};
#endif // WIDGET_H
Widget.cpp:
#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("Test");
m_edit.move(10, 45);
m_edit.resize(150, 25);
m_button.move(10, 80);
m_button.resize(150, 25);
m_button.setText("Test");
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()
{
}
main.cpp:
#include <QtGui/QApplication>
#include "Widget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
参考资料:
1126

被折叠的 条评论
为什么被折叠?



