3

我有一个自定义小部件,它继承自 QWidget 并在其布局中包含一些标签。每次我将鼠标放在它上面时,我都想更改小部件的背景颜色和小部件中的标签(这就是一切!)。

在我的自定义小部件中使用*:hover { background: red; }时,我只会在将鼠标移到标签上时将内容变为红色,但不会在标签之外、标签之间等。考虑到我将 StyleSheet 放在父小部件中,我不理解这种行为.

有任何想法吗?非常感谢,

4

2 回答 2

4

您可以像这样设置将级联到子级的父级样式表:

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

仅用于悬停:

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

查看https://qt-project.org/doc/qt-5.1/qtwidgets/stylesheet-syntax.html

于 2013-09-30T15:24:26.040 回答
0

最后,我解决了在主 QWidget 中创建 QFrame 并设置该 QFrame 的 StyleSheet 的问题。

于 2013-09-30T16:10:56.437 回答