第六章 事件系統

2021-09-27 02:21:25 字數 1432 閱讀 7055

2019-9-12事件

乙個事件會有多個事件型別
處理事件的方法:

1)重新實現事件處理函式,只能用來處理特定部件的特定事件

2)重新實現notify函式,一次只能處理乙個事件

4)重新實現event函式

5)在物件上安裝事件過濾器

事件傳遞:

exec函式使應用程式進入事件迴圈->qevent子類表示->傳遞給qobject物件或其子物件

這裡採用第一種事件處理方法

事件是先傳遞給指定視窗部件、如果忽略,就會傳遞給其父部件

qlineedit::keypressevent(event); // 執行qlineedit類的預設事件處理

//一般都是呼叫父類的相應事件處理函式來實現預設操作

event->ignore(); // 忽略該事件

事件過濾器:

eventfilter(qobject *obj, qevent *event) // 事件過濾器

obj是被監視的事件,安裝了事件過濾器之後,就能對指定的事件進行自己想要的處理,返回true的

話,就可以使乙個物件不響應某個事件

lineedit->installeventfilter(this); // 在widget上為lineedit安裝事件過濾器

這樣我們就將事件過濾器安裝到了this之上,以後在this上發生的事件都會經過eventfilter過濾

在本部件上監視lineedit部件

事件過濾器,焦點部件的event函式,焦點部件的事件處理函式,父部件的事件處理函式
滑鼠事件和滾輪事件

event->globalpos():是滑鼠指標在桌面上的位置

pos():視窗在桌面上的位置,視窗不動的時候,即使滑鼠動,它的值也是一樣的

鍵盤事件

if(event->modifiers() == qt::controlmodifier)  // 是否按下ctrl鍵

if(event->key() == qt::key_m) // 是否按下m鍵

按鍵的自動重複就是說這個按鍵在一直被按下,我們需要避免這種情況

我們這裡可以捕捉到最後一次按下!

定時器事件與隨機數

事件過濾器和事件傳送

事件過濾器可以方便的處理多個部件的多個事件,如果不用它的話,還要子類化不同的部件,

重新實現它們對應的各個事件處理函式。

還提供了傳送事件的功能。

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

第六章 指標

1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...

第六章總結

6.1 使用滑鼠 6.1.1 滑鼠時間和滑鼠訊息 根據使用者操作滑鼠時滑鼠的位置,滑鼠訊息分為兩類 客戶區滑鼠訊息和非客戶區滑鼠訊息。1.客戶去滑鼠訊息 2.當滑鼠游標位於視窗的使用者區時,將生成客戶滑鼠訊息。滑鼠訊息和鍵盤訊息有所不同,windows 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...