Проблема в таблице стилей приложения Qt - PullRequest
0 голосов
/ 11 сентября 2011

В моем приложении у меня есть раздел, который является верхним виджетом, цвет верхнего виджета серый, и я поместил severl виджет в верхний виджет, как QComboBox, QLineEdit и 2 QButton, но у меня есть проблема когда я щелкаю правой кнопкой мыши на QLineEdit, как вы видели на картинке ниже, цвет контекста окна по умолчанию серый, или когда я открываю QComboBox, цвет фона серый. Я установлю цвет фона двух этих виджетов на белый, но он не работает. Итак, как я могу это исправить?

Образец для лучшего понимания:

http://0000.4.img98.net/out.php/i52512_problem.png

Пожалуйста, помогите мне

1 Ответ

1 голос
/ 11 сентября 2011

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

// What you have probably done:
myLineEdit->setStyleSheet("background-color: gray");

// What you should have done:
myLineEdit->setStyleSheet("QLineEdit { background-color: gray }");      

// What you should do if there might be child widgets of the same type 
// but for which you don't want the style to apply:
myLineEdit->setObjectName("myLineEdit");
myLineEdit->setStyleSheet("QLineEdit#myLineEdit { background-color: gray }");

Подробнее см. "Синтаксис таблицы стилей - типы селектора" .

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