Qt如何判断长按

2025-10-25 14:20:17

1、利用Qt自带的功能autoRepeat,如果启用了autoRepeat,则当按钮关闭时,会定期发出pressed()、released()和clicked()信号。默认情况下,autoRepeat处于禁用状态。初始延迟和重复间隔由autorepeattelay和autorepeattinterval以毫秒为单位定义

Qt如何判断长按

2、设置长按多久会触发按钮的点击,如果启用了autoRepeat,则autoRepeat delay定义自动重复开始之前的初始延迟(以毫秒为单位)

Qt如何判断长按

3、设置初始延迟之后,重复发送消息的间隔,如果启用了自动重设,则自动重设间隔定义自动重复间隔的长度(以毫秒为单位)。

Qt如何判断长按

4、比如在ui界面添加一个按钮和文本显示框。并且设置了按钮的点击事件相应函数

读取文件放到显示文本里面。

Qt如何判断长按

Qt如何判断长按

5、在程序中添加 

 ui->pushButton->setAutoRepeat(true);   

ui->pushButton->setAutoRepeatDelay(1000);   

ui->pushButton->setAutoRepeatInterval(1000);

这样在你长按1秒之后 会相应点击事件,之后如果不放手会每隔1秒有一个点击事件。

Qt如何判断长按

1、鼠标的点击事件包括按下和释放,利用这个特性,继承QPushButton, 重写

   virtual void mousePressEvent(QMouseEvent* e);   

   virtual void mouseReleaseEvent(QMouseEvent* e);

鼠标的按下和释放

Qt如何判断长按

2、virtual void mousePressEvent(QMouseEvent* e)中,生成一个定时器,并且关联定时器的timeout signal 和 响应的函数,并且开始计时。

Qt如何判断长按

3、virtual void mouseReleaseEvent(QMouseEvent* e);停止定时器。这样就可以识别长按了。

Qt如何判断长按

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢