Есть такая довольно удобная вещь, как Dynamic Properties. Т.е., например, в родительском виджете задаем Style Sheet:
QPushButton[style="1"] { background-color: rgb(0, 255, 0); }
QPushButton[style="2"] { background-color: rgb(255, 0, 0); }
Далее меняем эту динамическую пропертию у виджетов, скажем, как-то так:
void SetWidgetProperty(QWidget* obj, const char *name, const int prop)
{
obj->setProperty(name, prop);
obj->style()->unpolish(obj);
obj->style()->polish(obj);
}
Все пушбутоны меняют цвет в зависимости от выставленной пропертии.
Вопрос в том, можно ли обойтись без такой шизоидной темы, как обработка этим методом каждого из 100500 виджетов на форме? Хотя все виджеты на форме наследуются, изменение динамической пропертии у родительского виджета не наследуется, не раздупляются дочерние виджеты. Есть варианты выкрутиться?