目录
QPushButton的四个信号:pressed(),clicked(),released(),toggled()
QPushButton 点击信号分析
QAbstractButton中的可用信号--QPushButton
----------------------------------------------------------------------------------
在 eventFilter()中判断单击、双击事件
bool Abc::eventFilter(QObject *obj, QEvent *event)
1. 单击、双击,Qt 没有默认的实现。
QPushButton的双击事件虽然一直有,但是在双击完成之前,总会响应到单击的事件处理或者连接槽,使用很不方便。
参考:Qt: QPushButton 单击、双击响应区分 (****) 定时器 https://blog.csdn.net/ken2232/article/details/131446911
2. 在 eventFilter()中,没有 clicked信号。
3. 使用 QEvent::MouseButtonPress 信号时,由于它的延时太长,难以区分 “双击”信号。
4. 有效的方法:使用 QEvent::MouseButtonRelease 信号,配合定时器来完成。
===============================================
QPushButton的四个信号:
pressed(),clicked(),released(),toggled()
- pressed():鼠标按下时触发。对应的函数是 mousePressEvent()。
- clicked():鼠标松开时触发。如果鼠标拖拽到按钮区域之外释放则不会触发。对应的函数是 mouseReleaseEvent()。一般情况下 connect 槽函数时使用该信号。
- released():鼠标松开时触发。即使鼠标拖拽到按钮区域之外释放也会触发。对应的函数是 mouseReleaseEvent()。
- toggled():设置 setCheckable(true) 后再单击按钮才会触发该信号。一般用于多个按钮组成 QButtonGroup 并且 setExclusive(true) 设置按钮间互斥。
正常情况下单击按钮,响应顺序为:
pressed() — about 215ms — released() — almost 0ms — clicked()。
————————————————
版权声明:本文为CSDN博主「hanjialeOK」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43742643/article/details/101706477
QPushButton 点击信号分析
结论:
- pressed最先执行,相当于按下操作
- 按下之后,按钮状态发生变化,触发toggled
- clicked最后执行,相当于弹起操作
https://www.jianshu.com/p/2c4e35a6ed72
QAbstractButton中的可用信号--QPushButton
https://blog.csdn.net/laner__gg/article/details/122732008