2015-07-29 3 views
-1

Перед изменения:QComboBox становится уродливым при изменении основного фона окна

enter image description here

После изменения родительского виджета styleSheet свойства это:

background-color: rgb(5, 34, 78); 

Я вижу это:

enter image description here

QComboBox действительно сильно отличается. Что происходит? Как использовать обычный QComboBox на темном фоне?

Я использую Qt 5.5 без QML.

+2

Настройка стилей отбрасывает стиль. Попробуйте использовать [QPalette] (http://doc.qt.io/qt-5.5/qpalette.html). – Amartel

+0

@Amartel спасибо, эта работа. Можете ли вы предоставить расширенное описание случившейся проблемы, чтобы я принял ваш ответ? – k06a

ответ

2

Вы должны установить его в главное окно только

yourWindow->setStyleSheet("{background-color: #HexNumber}");

или сказать QComboBox, чтобы не иметь стиль: yourWindow->setStyleSheet("QComboBox{background-color:none}");

или

yourWindow->setStyleSheet("QComboBox#ComboName{background-color:none}");

1

По manual:

Когда таблица стилей активна, QStyle, возвращаемый QWidget :: style() , является стилем «стиль» в оболочке, а не специфичным для платформы стилем. Стиль обертки гарантирует, что любая активная таблица стилей соблюдается, а в противном случае переводит операции рисования в базовый, стиль для конкретной платформы (например, QWindowsXPStyle в Windows XP).

Если вы хотите изменить некоторые цвета, оставив выбранный стиль неизменным, лучшим решением будет использование QPalette.

 Смежные вопросы

  • Нет связанных вопросов^_^