Qt 產品級的開發項目中經常會用到一些自定義控件,從而達到一些可定制化的效果,這時候往往需要重寫它的監聽事件,滿足產品的需求。這里用一個簡單的例子記錄一下思路:
新建一個DiyLabel 繼承QLabel,重寫enterEvent 和 mousePressEvent (例子)
DiyLabel 的實現
在Qt 設計師界面新增一個Label 並提升為DiyLabel 類型
這時候就監聽了鼠標的進入和點擊事件。
這是通過重寫控件的監聽事件實現,我們也可以給界面安裝事件過濾器,這時候需要重寫eventFilter 函數
主窗體:
安裝過濾器和實現eventFilter 函數
我們處理里鼠標右鍵點擊事件,鼠標左鍵的事件調用標准的事件處理,這時候事件會來到我們剛重寫的mousePressEvent 中。
運行結果:
Demo下載:
https://github.com/Arvin-Huang/Demo/tree/master/CPP/diyLabel