在Qt中为整个小部件设置StyleSheet

时间:2013-09-30 15:07:22

标签: c++ qt qtstylesheets

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

在我的自定义窗口小部件中使用*:hover { background: red; }时,我只会在将标签移到标签上时将内容显示为红色,但不会在标签之外,标签之间等等。我不明白这种行为是什么我将StyleSheet放在父窗口小部件中的帐户。

有什么想法吗?非常感谢,

2 个答案:

答案 0 :(得分:3)

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

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

仅限悬停:

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

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

答案 1 :(得分:0)

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