Qt 的事件監聽和事件過濾


  

Qt 產品級的開發項目中經常會用到一些自定義控件,從而達到一些可定制化的效果,這時候往往需要重寫它的監聽事件,滿足產品的需求。這里用一個簡單的例子記錄一下思路:

新建一個DiyLabel 繼承QLabel,重寫enterEvent mousePressEvent (例子)

DiyLabel 的實現

 

 

 

Qt 設計師界面新增一個Label 並提升為DiyLabel 類型

 

這時候就監聽了鼠標的進入和點擊事件。

這是通過重寫控件的監聽事件實現,我們也可以給界面安裝事件過濾器,這時候需要重寫eventFilter 函數

主窗體:

 

 

 

安裝過濾器和實現eventFilter 函數

 

 

 

我們處理里鼠標右鍵點擊事件,鼠標左鍵的事件調用標准的事件處理,這時候事件會來到我們剛重寫的mousePressEvent 中。

運行結果:

 

 

 

Demo下載:

https://github.com/Arvin-Huang/Demo/tree/master/CPP/diyLabel


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM