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