Qt5中的QpushButton提供了许多槽函数,其中pressed和released这两个槽函数组合起来可以实现按键测长按下实现某个功能。
实现原理是:定义一个定时器timer,编写一个函数实现你在长按时希望实现的功能,连接timer的超时信号与你写的函数,当按下按键触发pressed,在该槽函数下开启定时器timer->start,当松开按键触发released,在该槽函数下关闭定时器timer->stop,这样一来就实现了长按的功能,具体代码如下:
QTimer *timer = new QTimer;
connect(timer,SIGNAL(timeout()),this,SLOT(window_down())); //window_down为你自己编写的功能函数
void main_interface::on_window_up_pressed()
{
up_timer->start(20);
}
void main_interface::on_window_up_released()
{
up_timer->stop();
}