Отключенная тень заголовка QGroupBox (она же гравировка)
Внимательно посмотрите на отключенный заголовок QGroupBox (см. Прикрепленное изображение).
Под буквами заголовка вы заметите крошечную белую 1-пиксельную тень.
Это едва заметно на таблице стилей по умолчанию, но это может быть намного более раздражающим, если вы установите темный фон и цвет текста.
Что я могу сделать, чтобы отключить эту тень или хотя бы изменить ее цвет?
2 ответа
Какой стиль вы используете? Это похоже на "основной" стиль Windows. Если вы хотите избавиться от тени текста, вы можете реализовать свой собственный стиль и изменить способ отображения текста для отключенных групповых блоков. Узнайте больше о QStyle
и как создать собственный стиль здесь. Ссылка для Qt 5.1, но принцип тот же и для Qt 4.
Более простым способом было бы просто изменить палитру для QGroupBox
объект. Изменить цвет, определенный по цветовой группе QPalette::Disabled
и цветовая роль QPalette::Light
любого цвета с альфа-каналом, установленным на 0, например QColor(0, 0, 0, 0)
, Это эффективно отключит тень текста. Тем не менее, он также отключит тень линий, так что это может быть не то, что вы хотите.
Я нашел решение:
К сожалению, вы не можете удалить отключенную тень текста (так называемое травление), но вы можете изменить ее цвет, используя грязный обходной путь:
Похоже, что эффект тени всегда берет свой цвет из ColorGroup "Disabled" и ColorRole "Light" текущей палитры. Итак, вы просто устанавливаете этот цвет на цвет фона вашего виджета:
QPalette p = myWidget->palette();
p.setColor(QPalette::Disabled, QPalette::Light, QColor(0,0,0)); <- place your widget bg color here
myWidget->setPalette(p);