继承自QWidget的类设置了自定义属性frameColor-边框颜色
class FHRBox : public QWidget
{
Q_OBJECT
Q_PROPERTY(QColor frameColor READ frameColor WRITE setFrameColor)
public:
explicit FHRBox(QWidget *parent = 0);
void setFrameColor(const QColor &newColor);
QColor frameColor() const{return curframeColor;}
private:
QColor curframeColor;}
QSS设置:
FHRBox {
qproperty-frameColor:rgba(0,255,255);
}
针对自定义属性QSS设置,Qt文档介绍:
设置对像属性
a) 如果在程序里面使用Q_PROPERTY设置的属性,可以在qss里面使用:qproperty-<property name>的形式来访问并设置值。如:
MyLabel { qproperty-pixmap: url(pixmap.png); }
MyGroupBox { qproperty-titleColor: rgb(100, 200, 100); }
QPushButton { qproperty-iconSize: 20px 20px; }
如果属性引用到的是一个由Q_ENUMS申明的enum 时,要引用其属性名字要用定义的名称而不是数字。
引用:
读取QSS设置属性:
Helper::SetStyle("black");//灰色风格
Helper类:
#ifndef HELPER_H
#define HELPER_H
#include <QtCore>
#include <QtGui>
#include <QDesktopWidget>
class Helper
{
public:
Helper();
//设置皮肤样式
static void SetStyle(const QString &styleName)
{
QFile file(QString(":/res/%1.css").arg(styleName));
file.open(QFile::ReadOnly);
QString qss = QLatin1String(file.readAll());
qApp->setStyleSheet(qss);
qApp->setPalette(QPalette(QColor("#F0F0F0")));
}
};
#endif // HELPER_H