Qt 產品級的開發專案中經常會用到一些自定義控制元件,從而達到一些可定制化的效果,這時候往往需要重寫它的監聽事件,滿足產品的需求,這里用一個簡單的例子記錄一下思路:
新建一個DiyLabel 繼承QLabel,重寫enterEvent 和 mousePressEvent (例子)

DiyLabel 的實作

在Qt 設計師界面新增一個Label 并提升為DiyLabel 型別

這時候就監聽了滑鼠的進入和點擊事件,
這是通過重寫控制元件的監聽事件實作,我們也可以給界面安裝事件過濾器,這時候需要重寫eventFilter 函式
主表單:

安裝過濾器和實作eventFilter 函式

我們處理里滑鼠右鍵點擊事件,滑鼠左鍵的事件呼叫標準的事件處理,這時候事件會來到我們剛重寫的mousePressEvent 中,
運行結果:

Demo下載:
https://github.com/Arvin-Huang/Demo/tree/master/CPP/diyLabel
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/3608.html
標籤:C++
上一篇:PAT-Basic1-10
