1. 程式人生 > >Qt QpushButton 實現長按下功能

Qt QpushButton 實現長按下功能

有意義 AR div 分享圖片 spa 激活 time 定時 演示

最近做項目需要一個按鈕具備長時間按下的功能,才發現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 實現長按下功能