Как я могу заставить виджет Qt игнорировать таблицы стилей, установленные на родительских виджетах? - PullRequest
11 голосов
/ 15 мая 2010

При добавлении элемента управления QComboBox в Qt Designer, я получаю ужасно выглядящий не нативный элемент управления:

enter image description here

При дальнейшем копании оказывается, что два родительских элемента управления, QParentWindow и QStackedWidget, имеют таблицы стилей, которые наследует QComboBox. Если я удаляю пользовательские стили, я получаю собственный QComboBox, как слева.

Как сделать так, чтобы QComboBox (и виджеты вообще) НЕ наследовали родительские стили? Или, как я могу создать стиль, скажем, для QParentWindow и сделать так, чтобы он был только локальным и не каскадным?

Ответы [ 2 ]

5 голосов
/ 15 мая 2010

Не думаю, что вы можете предотвратить это от каскадирования. Но, используя более конкретные селекторы в вашей таблице стилей, возможно, вы сможете определить свойства только для вашего класса QParentWindow или конкретного объекта.

4 голосов
/ 05 ноября 2013

вам нужно определить стиль и затем назначить его этому объекту:

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" - это имя объекта. Таким образом, любая вещь внутри группового ящика будет иметь свой собственный стиль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...