Qt的PushButton的常用的三种响应有pressed,released和clicked。
优先级:pressed>released>clicked
按下按钮pressed函数的内容,释放按钮先执行released函数的内容,再执行clicked函数的内容。
QAbstractButton 的四个信号
- clicked(bool checked):鼠标松开时触发。如果鼠标拖拽到按钮区域之外释放则不会触发。对应的函数是 mouseReleaseEvent()。一般情况下 connect 槽函数时使用该信号。
- pressed(): 鼠标按下时,发射信号。对应 mousePressEvent()
- released():鼠标松开时,发射信号。即使鼠标拖拽到按钮区域之外释放也会触发。对应 mouseReleaseEvent()
当发送emit pressed()后,发送emit released(),只有鼠标还在按钮那个位置才可以触发clicked()。
所以,如果可以直接让clicked()信号再发送emit released()时,一起发送,不用纠结clicked()和released()的区别