和这篇文章遇到的问题极其相似
解决Qt qpushbutton stylesheet hover
但是按照这篇文章的解决方法并不能解决我的问题,我是按照自己的方法解决的。
一、问题描述:
用qss设置了鼠标的几种状态,分别是正常状态、hover状态和pressed状态。
点击按钮后,在按钮下方弹出一个自定义的Widget,这个继承自widget类的构造函数中设置了窗口的属性
setWindowFlags(Qt::Popup | Qt::FrameLessWindowHint)
问题出现了,点击这个按钮后,弹出一个自定义的pop窗口,但是这时候按钮还是hover状态。
鼠标从这个按钮上移走也没有状态变化,只能先让pop窗口消失后,再将鼠标移动到刚才那个按钮,再移开,才会看到按钮恢复到正常状态。
二、分析原因
为了便于描述,刚才那个肇事按钮就以settingPushButton称了。
原因是点击settingPushButton后,鼠标还在settingPushButton上,这时候一个popup窗口出来了,是个模态框(点击其他地方这个popup窗口才会消失),事件循环在popup中,settingPushButton自然就无法收到移出事件了。
三、解决
在按钮的槽函数,也就是刚才那

最低0.47元/天 解锁文章
626





