如何自學QT(11) event分發的理解

2021-10-10 03:07:54 字數 1192 閱讀 6758

bool event

(qevent *ev)

;

如果返回值是true,證明使用者要處理這個事件,不再向外分發了

首先,我們先查一下幫助文件

在下面找到mouse相關,就可以找到列舉值

於是,我們在標頭檔案生命event後可以重寫它

bool mylabel:

:event

(qevent *e)

}

執行程式,你就會發現……

我文字框沒了!我放在中間那麼大一文字框!

事實上,它並沒有消失,不信你摁摁中間那個位置,下面會列印的

為什麼呢?請看左上角,有個巨大的bool

我們只是重寫了一部分event函式,需要返回它父類的值

所以應該是這樣的

bool mylabel:

:event

(qevent *e)

return qlabel:

:event

(e);

}

雖然它成功了,但這個東西其實並不用來攔截……就,舉個例子說明它的用法和許可權。

其實,在事件分發前,還有一層過濾

使用它,有兩個步驟

1,給控制項安裝事件過濾器

ui -

> label -

>

installeventfilter

(this

);

2,重寫eventfilter過濾器

bool widget:

:eventfilter

(qobject * obj , qevent * e)

return qwidget:

:eventfilter

(obj,e)

;}

列印的是過濾而非攔截,所以能看出,過濾先於分

加布胡問QT1

qt使用label控制項顯示時,無法顯示 使用絕對路徑可以,相對路徑不行 設定 ui labelimage setpixmap qpixmap e qtworkspace day02 code 01 myparts image luffy.png ui labelimage setpixmap qp...

Qt開發自學1 認識Qt

1 先看mainwindow.件 在namespace命名空間下進行宣告,對具體類進行宣告 explicit防止隱式轉換 建構函式,析構函式 基礎ui類,所有控制項都在全域性指標 ui下面。2 再看mainwindow.cpp檔案 各種函式的具體實現 建構函式 析構函式 3 工具工作列 3.1歡迎 ...

如何自學python 如何自學python語言

如何自學python程式設計?一堆的python教程卻感覺無從下手呢?我想這應該是很多python初學者正在糾結的問題。今天想要分享給大家的是如何自學python程式設計,學習這件事 還真不是人人都擅長的,有的人拿到一堆的python教程卻感覺無從下手,有的人卻靠這一堆python教程入門,這就是差...