背景
最近項目遇到一個需求,通過鼠標按鈕長按一直發(fā)數(shù)據(jù),鼠標松開立即離開。
想了一會兒大概有了幾種思路(僅僅是思路,不一樣可以實現(xiàn))
1.重寫鼠標事件,通過鼠標檢測實現(xiàn)。
2.定時器觸發(fā)實現(xiàn)。
3.通過某一個參數(shù)或者勾選命令實現(xiàn)。
查資料
- QT按鈕類及定時器應用
- 【QT】定時器
- Qt實戰(zhàn)案例(45)——利用QPushButton實現(xiàn)按鈕長按事件
第3種
第3種符合我的需求,用第3種試試
widget.cpp源文件
ui->pushButton->setAutoRepeat(true); //啟用長按
ui->pushButton->setAutoRepeatDelay(400);//觸發(fā)長按的時間
ui->pushButton->setAutoRepeatInterval(50);//長按時click信號間隔
connect(ui->pushButton,&QPushButton::clicked,[&]{
qDebug()<<i++;
ui->horizontalSlider->setValue(i);
if(i>=100)i=100;//將最大值控制在100
});
效果確實可以。
最好方法
但是我仔細看看了UI界面,發(fā)現(xiàn)其實不用那么麻煩,勾選一個框即可解決問題
Qt之 QpushButton 實現(xiàn)長按下狀態(tài)觸發(fā)功能文章來源:http://www.zghlxwxcb.cn/news/detail-478965.html
小結
從需求分解到實現(xiàn),找到最好的方法,事半功倍!達到懂勁的二層境界!
三重境界“招熟、懂勁、神明”文章來源地址http://www.zghlxwxcb.cn/news/detail-478965.html
到了這里,關于Qt Button實現(xiàn)按鈕長按事件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!