学习自唐佐林老师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);
//获取文本框QLineEdit对象的 调色板
p = m_edit.palette();
//设置 文本框QLineEdit中高亮选中文字 在 非激活态 背景颜色和前景颜色 蓝色
p.setColor(QPalette::Inactive, QPalette::Highlight, Qt::blue);
p.setColor(QPalette::Inactive, QPalette::HighlightedText, Qt::white);
//设置QLineEdi文本框对象的调色板
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();
}

286

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



