QT 使用自定义状态(属性)来显示不同的样式表

    我们在定义一个控件的样式表的时候,有一些自带的属性,比如QPushbutton.我们可以通过QPushbutton::checked 与QPushButton:unchecked 两种自带的状态(属性来设置不同的样式)

QPushButton:checked
{
	color:red;
}

QPushButton:unchecked
{
	color:blue;
}

可是这样也有局限性,比如我们想有三种甚至多种状态的样式表呢?我们想设置任意多种自定义的状态怎么办?

我们可以使用

QObject::setProperty("key","value");



来设置同一个key的不同值来设置样式表



=========================================举个栗子=====================================================

QPushButton[buttonStatus="11"]
{
	color:red;
}

QPushButton[buttonStatus="22"]
{
	color:green;
}

QPushButton[buttonStatus="33"]
{
	color:blue;
}

通过设置QPushButton的"buttonStatus"的属性值来实现不同的样式

btn->setProperty("buttonStatus", "11");
//btn->setProperty("buttonStatus", "22");
//btn->setProperty("buttonStatus", "33");

最后最关键的一步来了,需要重新刷新一下

btn->style()->polish(btn);



你可能感兴趣的:(QT,QT,自定义属性,自定义状态,样式表)