这里默认大家已经会html 和 CSS的一些基本的东西,如果不会的话,花个半天的时间找个网站学习一下就差不多入门了。
我们知道html里面可以设置id 和 class属性来分别区分同一种类型的控件,Qt虽说支持QSS,但是它毕竟是C++开发的,怎么去区分呢?这里就用到了Qt的元对象,每一个QObject的子类都可以自定义属性,然后我们通过属性选择器就可以实现这个功能了。
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
QPushButton *m_red_btn;
QPushButton *m_blue_btn;
QHBoxLayout *m_main_layout;
};
#endif // WIDGET_H
#include "widget.h"
#include <QString>
#include <QVariant>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QString qss = "QPushButton[id=\"blue\"]{background-color:#40bad5;color:#ffffff} QPushButton[id=\"red\"]{background:#f6acc8;color:#ffffff}";
m_red_btn = new QPu