2013-09-30 3 views
2

У меня есть собственный виджет, который наследуется от QWidget и содержит некоторые метки в его макете. Я бы хотел изменить цвет фона виджета и метки в виджетах (это все!) Каждый раз, когда я наводил на него курсор.Установить StyleSheet для всего виджета в Qt

При использовании в моем пользовательском виджете *:hover { background: red; }, я получаю содержимое только красным цветом при перемещении мышки над метками, но не за их пределами, между метками и т. Д. Я не понимаю этого поведения, учитывая, что я помещаю StyleSheet в родительском виджетах.

Любые идеи? Большое спасибо,

ответ

0

Наконец я решена проблема создания QFrame внутри основного QWidget и установка StyleSheet этого QFrame.

2

Вы можете установить таблицу стилей родительского, который будет каскадных детям, как это:

parent->setStyleSheet("* {background: red}"); 

Для зависания только:

parent->setStyleSheet("*:hover {background: red}"); 

Заканчивать https://qt-project.org/doc/qt-5.1/qtwidgets/stylesheet-syntax.html

+0

Большое вам спасибо. Но, в таком случае, как я могу сделать это для мыши? Я имею в виду, я пытался использовать 'QWidget: hover {background: foo; } ', могу ли я использовать' *: hover {background: foo; } '? –

+0

@ DídacPrerez, да! – fxam

+0

Работает для всех виджетов, но не для родителя! Я совершенно удивлен! –

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