Qt用Qss设置自定义属性

这里用到了Qt中的属性机制,就是Q_PROPERTY这个宏,在qss中我们一般只会调用写的方法就是WRITE这是属性里面的,详细介绍可以看qt助手,qss启动属性的写方法是这个字符串:qproperty-“你的属性名”;比如你有个QWidget你设置了他的属性为btText,那你的qss就写qproperty-btText;如下:

class MainWindow : public QWidget
{
    Q_OBJECT
    Q_PROPERTY(QString btText WRITE setProperty)
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    void setProperty(QString qsText);
};
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
	a.setStyleSheet("QWidget#pushButton{qproperty-btText: 吃葡萄不吐葡萄皮 ");
}

WRITE后放你要触发的函数名;函数里你想干啥都行。
这里抛出个疑问:

qproperty-icon: url(":***.png") off,
                url(":***.png") on ;

这个off 和on为啥写上去没任何效果呢,欢迎各位大佬指点一二

你可能感兴趣的:(qt)