Установить пользовательский QSS для нажатой кнопки
У меня есть пользовательская кнопка FlatButton
У ведьмы есть логическое свойство isActive
, Я хочу установить собственный стиль qss для активной (нажатой) кнопки. Заголовок класса:
class FlatButton : public QPushButton
{
Q_OBJECT
Q_PROPERTY(bool isActive READ isActive WRITE setActive)
public:
explicit FlatButton();
~FlatButton();
bool isActive() const; // getter of isActive property
void setActive(bool state); // setter of isActive property
private:
bool _active;
};
У меня есть объект этого класса:
FlatButton *filterButton = new FlatButton("Filter");
filterButton->setActive(false); // here I have green text on button
Я хочу изменить стиль в соответствии isAtive
Значение свойства: когда isActive == true
установить цвет текста на красный, когда isActive == false
установить цвет текста на зеленый. Связь:
connect(filterButton, SIGNAL(clicked()), this, SLOT(onFilterClicked()));
Слот:
void SearchPanel::onFilterClicked()
{
filterButton->setActive(true); // after this code button text is still green
}
Вопрос:
#FlatButton[isActive=false] {
color: green;
}
#FlatButton[isActive=true] {
color: red;
}
Имущество isActive
работает как я хочу, но стиль qss не меняется, когда нажимается кнопка (у меня есть isActive == true
, но цвет текста по-прежнему green
). Что я делаю не так? Почему стиль не хочет меняться?