QKeyPressEvent在按鍵長按與短按的情況

2021-08-31 01:18:18 字數 640 閱讀 8054

1.實際開發遇到的場景

我需要在某個按鍵按下時實現某個操作,在按鍵再次按下時取消這個操作,之後按鍵的操作重複上面的步驟。

開始未考慮太多,實現**如下:

void qkeypressevent(qkeyevent *event)

else

break;

//...

}}

我在qkeypressevent中case該按鍵時,實現了這個需求,使用乙個標誌位m_bisf2pressflag 用於區分時實現還是取消操作。但是,這樣子,存在乙個問題:在按鍵長按時,會一直響應該按鍵。

2.解決方法:

出現這樣現象的原因是,在長按時event自動setautorepeat(true),這樣會導致一直響應該按鍵的鍵盤事件。慶幸的是,我們可以通過event的isautorepeat()方法來得到這個狀態,至此,我們得到了解決問題的方法。附上最後解決問題後的**:

void qkeypressevent(qkeyevent *event)

else

break;

//...

}}

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...

需求在變化,思維在變化

做了這個遠端監控專案,發現開發專案其實相當具有挑戰性的,這種挑戰性主要表現在兩個方面 1 不斷變化的領導需求 或者客戶需求 2 並不熟練甚至並不了解的技術。最近看了一些 瘋狂的程式設計師 還是很羨慕絕影能在大學期間找到自己喜歡的方向,喜歡的事情,把自己喜歡的事情作為自己的工作甚至事業實際上是非常快樂...