Ответ 1
Я не думаю, что вы можете предотвратить его каскадирование. Но, используя более конкретные селектора в вашей таблице стилей, возможно, вы можете определить свойства только для вашего класса QParentWindow или для конкретного объекта.
При добавлении элемента управления QComboBox в Qt Designer я получаю ужасный внешний вид, не относящийся к нему, см.:
http://curiouschap.com/wp-content/uploads/2010/05/stack_qcombobox_question.png [как новичок, SO не разрешил мне вставлять изображение]
При дальнейшем росте, оказывается, что два родительских элемента управления QParentWindow и QStackedWidget имеют таблицы стилей, которые наследует QComboBox. Если я удалю пользовательские стили, я получаю собственный QComboBox, как тот, который находится слева.
Как я могу получить QComboBox (и виджетов вообще) НЕ наследовать родительские стили? Или, как я могу создать стиль для, скажем, QParentWindow, и делать это так, чтобы он был локальным только и не каскадировался?
Я не думаю, что вы можете предотвратить его каскадирование. Но, используя более конкретные селектора в вашей таблице стилей, возможно, вы можете определить свойства только для вашего класса QParentWindow или для конкретного объекта.
вам нужно определить стиль, а затем назначить его этому объекту:
QString settingStyle = " QGroupBox#groupBoxSettings {\
background-color: rgb(248,248,248);\
border: 1px solid rgb(170, 170, 255);\
border-radius: 3px;\
border-color:rgb(170, 170, 255);\
}";
ui->groupBoxSettings->setStyleSheet(settingStyle);
здесь "groupBoxSettings" - это имя объекта. Таким образом, любая вещь внутри группового ящика будет иметь свой собственный стиль.