为啥 Qt 样式表 "Foo:hover * " 总是适用?
Posted
技术标签:
【中文标题】为啥 Qt 样式表 "Foo:hover * " 总是适用?【英文标题】:Why does the Qt Stylesheet "Foo:hover * " always apply?为什么 Qt 样式表 "Foo:hover * " 总是适用? 【发布时间】:2013-12-08 23:34:17 【问题描述】:我有一个项目列表,我想为当前选定的项目添加阴影。问题是 Foo
小部件有子小部件,并且当以下规则始终适用而不是仅在悬停时:
Foo:hover
background-color:#00FFFF;
Foo:hover *
background-color:#00FFFF;
我该如何解决这个问题?
【问题讨论】:
你确定不应该是Foo::hover
吗?
@koan 我希望 foo 和所有孩子都悬停,但 :fover *
规则是始终匹配的部分(即使它没有悬停)。
在我的样式表中,我使用的是QPushButton::hover
- 注意是2个冒号。如果:hover
未被识别,那么它总是可以匹配
@koan 刚试了一下,没用
你截取的代码中的背景颜色是一样的。是故意的吗??
【参考方案1】:
您的syntax 错误。应该是这样的:
Foo *::hover background-color: #00FFFF;
或者,如果您只想将其应用于直接子代:
Foo > *::hover background-color: #00FFFF;
【讨论】:
这个解决方案将使孩子们在他们自己悬停时具有该颜色背景。当 Foo 悬停在上面时,我希望他们的背景发生变化。 (我对此进行了测试以验证我是正确的。) @chacham15 在这种情况下,您可能必须覆盖进入和离开事件并在那里更改样式表。以上是关于为啥 Qt 样式表 "Foo:hover * " 总是适用?的主要内容,如果未能解决你的问题,请参考以下文章