Qt學習之路 21 event

2021-05-21 21:16:50 字數 765 閱讀 1212

今天要說的是event()函式。記得之前曾經提到過這個函式,說在事件物件建立完畢後,qt將這個事件物件傳遞給qobject的event()函式。event()函式並不直接處理事件,而是將這些事件物件按照它們不同的型別,分發給不同的事件處理器(event handler)。

event()函式主要用於事件的分發,所以,如果你希望在事件分發之前做一些操作,那麼,就需要注意這個event()函式了。為了達到這種目的,我們可以重寫event()函式。例如,如果你希望在視窗中的tab鍵按下時將焦點移動到下一元件,而不是讓具有焦點的元件處理,那麼你就可以繼承qwidget,並重寫它的event()函式,已達到這個目的:

event(qevent *

event)

return qwidget::

event(

event);

bool qwidget::

event(qevent *

event)

return

true;

qwidget的event()函式使用乙個巨大的switch來判斷qevent的type,並且分發給不同的事件處理函式。在事件處理函式之後,使用這個事件的isaccepted()方法,獲知這個事件是不是被接受,如果沒有被接受則event()函式立即返回false,否則返回true。

另外乙個必須重寫event()函式的情形是有自定義事件的時候。如果你的程式中有自定義事件,則必須重寫event()函式以便將自定義事件進行分發,否則你的自定義事件永遠也不會被呼叫。關於自定義事件,我們會在以後的章節中介紹。

Qt學習之路 21 event

2009 11 21 10 19 41 標籤 教程學習 c qt教程qt 原始出處 作者資訊和本宣告。否則將追究法律責任。今天要說的是event 函式。記得之前曾經提到過這個函式,說在事件物件建立完畢後,qt將這個事件物件傳遞給qobject的event 函式。event 函式並不直接處理事件,而是...

Qt學習之路21 檔案操作

io操作的本質就是讀寫一段連續的儲存空間。qfile file qstring c users song8023 desktop test.txt 定義乙個檔案qfile類物件時需要指定路徑和名字,if file.open qiodevice writeonly qiodevice text 以只寫...

python學習之路(21)

偏函式 python的functools模組提供了很多有用的功能,其中乙個就是偏函式 partial function 要注意,這裡的偏函式和數學意義上的偏函式不一樣。在介紹函式引數的時候,我們講到,通過設定引數的預設值,可以降低函式呼叫的難度。而偏函式也可以做到這一點。舉例如下 int 函式可以把...