Qt 自定义控件应用QSS(setStyleSheet)设置由Q_PROPERTY设置的属性

继承自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-的形式来访问并设置值。如: 
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 
#include 
#include 
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
 
  

你可能感兴趣的:(Qt知识点)