例如 qss中按钮的样式:QPushButton{background:red};QPushButton::pressed{background:green};QPushButton::hover{background:blue};此样式只会显示红色,鼠标悬浮上去是蓝色,点击的绿色是不生效的。无论怎么排查、调整样式书写格式,都发现不了错误,因为qss样式没有写错。那么为什么pressed的样式不生效呢?
初步排查源码会发现,当鼠标在按钮上时会一直发hover信号,鼠标点击时也会发送press信号,然后按照代码的先后顺序执行,hover信号后执行,把之前的样式覆盖掉了。
所以,正确的顺序是把hover放到pressed之前,这样样式就不会覆盖导致失效了。
Qt qss、ui里进行按钮样式设置(正常状态、鼠标悬浮状态、鼠标点击状态、禁用状态),会导致按钮不显示点击状态的样式
最新推荐文章于 2024-11-24 15:55:01 发布