У меня есть собственный виджет, чьим родителем является еще один пользовательский виджет.Я могу установить цвет фона родительского пользовательского виджета, используя QPalette
, и он работает нормально.Но я не могу установить цвет границы дочернего пользовательского виджета, используя QPalette
и stylesheet
.
. Так я могу установить цвет фона моего родительского пользовательского виджета:
QPalette pal = parentCustomWidget->palette();
QColor color = {226, 208, 208};
pal.setColor (QPalette::Background, color);
parentCustomWidget->setAutoFillBackground (true);
parentCustomWidget->setPalette (pal);
parentCustomWidget->show();
IНаправил несколько SO сообщений / ответов для установки цвета фона для пользовательского виджета, но я не могу установить его.Вот как я устанавливаю свой цвет childCustomWidget
:
Подход 1:
QPalette pal = childCustomWidget->palette();
QColor color = {204, 231, 47};
pal.setColor (QPalette::Background, color);
childCustomWidget->setAutoFillBackground (true);
childCustomWidget->setPalette (pal);
Подход 2:
childCustomWidget->setStyleSheet ("*{border-width:" +
BorderThickness +
";border-style:solid;border-color:" +
hexColorCode + " ;color:white;}");
Примечание: IЯ прокомментировал виртуальную функцию paintEvent
.
Я прошел по этой ссылке: Как изменить цвет фона QWidget и включил изменения, как указано, но я не могу установить цвет наchildCustomWidget
.
Мои пользовательские виджеты с вышеуказанными подходами выглядят следующим образом:
Здесь оранжевый - это цвет BG родителя, которыйЯ могу установить.Серый цвет, по-видимому, является цветом по умолчанию для дочернего виджета.