如何在使用QSS时,当悬停在父级QFrame上时设置子级QLabel的颜色?

5
我正在尝试使用样式表设置QFrame内2个标签的hover状态颜色,但无论实际是否悬停,该框架都会获取悬停状态。如下图所示:enter image description here 我有一个带有QLabel的QFrame。我将默认颜色设置为绿色和紫色。当我悬停在QFrame上时,两个标签的颜色应变为红色。 完全相同的CSS可用于HTML, 但我似乎无法使其与QT样式表一起正常工作。
div{background-color:black; width:200px; height:100px;}

#label1{color: green;}
#label2{color: purple;}

div:hover #label1 {color: red;}
div:hover #label2 {color:red;}

QLabels是QFrames。也许这就是为什么你的CSS不能正常工作的原因?另外,你缺少分号。我见过这种情况引起问题。 - cppguy
2个回答

2
使用Qt5.9测试过,你的代码仍然无法工作。我和你一样遇到了同样的问题。
但是,使用这个简单的QSS代码,我可以让标签的文本变成蓝色,并且在悬停时变成红色。
QLabel {color:blue}
QFrame:hover {color:red}

这在使用对象名称时无法工作,可能是由于QSS的冲突解决
#label {color:blue}
QFrame:hover {color:red}

0

您无法使用QLabel来完成此操作,这是QSS的限制。尝试使用QToolButton代替QLabel(并自定义QToolButton以看起来像QLabel)。

可能您也应该使用QToolButton代替QFrame


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接