最近有一個需求,按下按鈕時,收據開始接收,鬆開按鈕,停止接收。
但是QT的QPushButton不像mfc中的按鈕只要按住就會一直髮一個消息,它只會發一次pressed信號,
解決辦法:就是收到pressed信號時創建個定時器,定時器不停觸發一個槽函數,鬆開按鈕時收到released信號,停止定時器。
例子:
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();
}
網友遇到了這個問題,我特地試了一下:
一直按住按鈕時,如果此時我的軟件因爲其他原因彈出個對話框,此時按鈕恢復非按下狀態,但是它不發射released信號!所以定時器沒有停止!
解決方法: