Qt 的事件監聽和事件過濾

  

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

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

DiyLabel 的實現函數

 

 

 

Qt 設計師界面新增一個Label 並提高爲DiyLabel 類型 spa

 

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

這是經過重寫控件的監聽事件實現,咱們也能夠給界面安裝事件過濾器,這時候須要重寫eventFilter 函數blog

主窗體:繼承

 

 

 

安裝過濾器和實現eventFilter 函數事件

 

 

 

咱們處理裏鼠標右鍵點擊事件,鼠標左鍵的事件調用標準的事件處理,這時候事件會來到咱們剛重寫的mousePressEvent 中。開發

運行結果:get

 

 

 

Demo下載:

https://github.com/iamarvinh/Demo/tree/master/CPP/diyLabel

相關文章
相關標籤/搜索