我正在尝试使用样式表在QFrame中设置2个标签的悬停状态颜色,但无论是否存在实际悬停,框架都会采用悬停状态:
我有QLabel的QFrame。我将默认颜色设置为绿色和紫色。当我将QFrame悬停时,两个标签的颜色应该变为红色。
exact same CSS does work with 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;}
答案 0 :(得分:0)
您无法使用QLabel
执行此操作。这是QSS的局限性。尝试使用QToolButton
代替QLabel
(并自定义QToolButton
看起来像QLabel
)。
您可以使用QToolButton
代替QFrame
。
答案 1 :(得分:0)
经过Qt5.9测试,您的代码仍然无法正常工作。我和你的行为一样。
但是,通过此简单的QSS代码,我将标签的文本更改为蓝色,将鼠标悬停在标签上时显示红色。
QLabel {color:blue}
QFrame:hover {color:red}
使用对象名称时,此操作不起作用,可能是由于QSS的conflict resolution。
#label {color:blue}
QFrame:hover {color:red}