Установить таблицу стилей для всего виджета в Qt

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

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

Есть идеи? Большое спасибо,

3

Решение

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

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

Только для зависания:

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

Проверять, выписываться https://qt-project.org/doc/qt-5.1/qtwidgets/stylesheet-syntax.html

3

Другие решения

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

0

По вопросам рекламы [email protected]