Qt QpushButton 实现长按下功能

Posted dreamdog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt QpushButton 实现长按下功能相关的知识,希望对你有一定的参考价值。

最近做项目需要一个按钮具备长时间按下的功能,才发现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生成的名字。不过在正式的开发中,还是建议给每一个变量起一个有意义的明细,这样你好我好大家好。

以上就是今天的内容。

以上是关于Qt QpushButton 实现长按下功能的主要内容,如果未能解决你的问题,请参考以下文章

QT按键长按功能的实现问题

qt中怎么实现按下pushbutton键调用自己的函数。

Qt - 我有一个 QPushButton QVector,哪个被按下了?

使用悬停和按下样式表 Qt

Qt中通过点击一个QPushButton来实现QTextEdit的PageUp/PageDown功能

Qt如何给一个button,悬浮 按下设置不同的背景图