Qt 產品級的開發項目中常常會用到一些自定義控件,從而達到一些可定製化的效果,這時候每每須要重寫它的監聽事件,知足產品的需求。這裏用一個簡單的例子記錄一下思路:git
新建一個DiyLabel 繼承QLabel,重寫enterEvent 和 mousePressEvent (例子)github
DiyLabel 的實現函數
在Qt 設計師界面新增一個Label 並提高爲DiyLabel 類型 spa
這時候就監聽了鼠標的進入和點擊事件。設計
這是經過重寫控件的監聽事件實現,咱們也能夠給界面安裝事件過濾器,這時候須要重寫eventFilter 函數blog
主窗體:繼承
安裝過濾器和實現eventFilter 函數事件
咱們處理裏鼠標右鍵點擊事件,鼠標左鍵的事件調用標準的事件處理,這時候事件會來到咱們剛重寫的mousePressEvent 中。開發
運行結果:get
Demo下載: