我有一个自定义小部件,它继承自 QWidget 并在其布局中包含一些标签。每次我将鼠标放在它上面时,我都想更改小部件的背景颜色和小部件中的标签(这就是一切!)。
在我的自定义小部件中使用*:hover { background: red; }
时,我只会在将鼠标移到标签上时将内容变为红色,但不会在标签之外、标签之间等。考虑到我将 StyleSheet 放在父小部件中,我不理解这种行为.
有任何想法吗?非常感谢,
我有一个自定义小部件,它继承自 QWidget 并在其布局中包含一些标签。每次我将鼠标放在它上面时,我都想更改小部件的背景颜色和小部件中的标签(这就是一切!)。
在我的自定义小部件中使用*:hover { background: red; }
时,我只会在将鼠标移到标签上时将内容变为红色,但不会在标签之外、标签之间等。考虑到我将 StyleSheet 放在父小部件中,我不理解这种行为.
有任何想法吗?非常感谢,
您可以像这样设置将级联到子级的父级样式表:
parent->setStyleSheet("* {background: red}");
仅用于悬停:
parent->setStyleSheet("*:hover {background: red}");
查看https://qt-project.org/doc/qt-5.1/qtwidgets/stylesheet-syntax.html
最后,我解决了在主 QWidget 中创建 QFrame 并设置该 QFrame 的 StyleSheet 的问题。