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 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...