Qt QpushButton 实现长按下功能

元气小坏坏 提交于 2020-02-08 11:52:51

https://www.cnblogs.com/DreamDog/p/9158862.html

做项目需要一个按钮具备长时间按下的功能,才发现Qt原始的按钮是没有这个功能,不过Qt的原生按钮是存在按下和释放信号的,有了这两个信号,再来实现按钮长时间被按下,这就简单了,看下动画演示。

录成GIF效果不咋明显了。其实我实现按钮长时间被按下就是增加的定时器,当按钮被按下时,激活定时器,并每隔一段时间出发clicked事件,这样就差不多实现了这个功能。

看下代码

复制代码
/*
 * +号按下
 */
void MainWindow::on_pushButton_4_pressed()
{
    if(!timer1)
    {
        timer1 = new QTimer();
        connect(timer1,&QTimer::timeout,this,&MainWindow::on_pushButton_4_clicked);
    }
    timer1->start(100);
}
/*
 * 加号释放
 */
void MainWindow::on_pushButton_4_released()
{
    timer1->stop();
}
复制代码

这里请大家忽略我的命名,这个程序简单到功能只有一个,所有直接使用了Qt生成的名字。不过在正式的开发中,还是建议给每一个变量起一个有意义的明细,这样你好我好大家好。

以上就是今天的内容。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!