QT小專案(一)滑鼠的事件

2021-09-10 15:13:12 字數 1417 閱讀 3394

這個例子要實現的效果是:

滑鼠按下事件:

void widget::mousepressevent(qmouseevent *event) // 滑鼠按下事件

else if(event->button() == qt::rightbutton)

}

在滑鼠按下事件處理函式中,先判斷是哪個按鍵按下,如果是滑鼠左鍵,那麼就更改指標的形狀,並且儲存當前指標位置與視窗位置的差值。這裡使用了globalpos()函式來獲取滑鼠指標的位置,這個位置是指標在桌面上的位置,因為視窗的位置就是指的它在桌面上的位置。另外,還可以使用qmouseevent類的pos()函式獲取滑鼠指標在視窗中的位置。如果是滑鼠右鍵按下,那麼就將指標顯示為我們自己的。

滑鼠移動事件:

void widget::mousemoveevent(qmouseevent *event) // 滑鼠移動事件

}

在滑鼠移動事件處理函式中,先判斷是否是滑鼠左鍵按下,如果是,那麼就使用前面獲取的差值來重新設定視窗的位置。因為在滑鼠移動時,會檢測所有按下的鍵,而這時使用qmouseevent的button()函式無法獲取哪個按鍵被按下,只能使用buttons()函式,所以這裡使用buttons()和qt::leftbutton進行按位與的方法來判斷是否是滑鼠左鍵按下。

滑鼠釋放事件:

void widget::mousereleaseevent(qmouseevent *event) // 滑鼠釋放事件

在滑鼠釋放函式中進行了恢復滑鼠形狀的操作,這裡使用的restoreoverridecursor()函式要和前面的setoverridecursor()函式配合使用。

滑鼠雙擊事件:

void widget::mousedoubleclickevent(qmouseevent *event) // 滑鼠雙擊事件

}

在滑鼠雙擊事件處理函式中使用setwidowstate()函式來使視窗處於全屏狀態或者恢復以前的大小。

滾輪事件:

void widget::wheelevent(qwheelevent *event)    // 滾輪事件

else

}

在滾輪事件處理函式中,使用qwheelevent類的delta()函式獲取了滾輪移動的距離,每當滾輪旋轉一下,預設的是15度,這時delta()函式就會返回15*8即整數120。當滾輪向遠離使用者的方向旋轉時,返回正值;當向著靠近使用者的方向旋轉時,返回負值。這樣便可以利用這個函式的返回值來判斷滾輪的移動方向,從而進行編輯器中內容的放大或者縮小操作。

Qt滑鼠事件

1 滑鼠事件有哪些?預設如何觸發?查文件 查文件,注意mousemoveevent預設是滑鼠按下移動觸發,若要滑鼠移動直接觸發,則需要setmousetraching true 2 預設訊息響應是什麼?如何自定義響應?查文件 繼承過載 3 多個接收者,滑鼠事件預設接收者是誰?如何自定義接收者?缺省會...

Qt滑鼠事件總結

滑鼠按下事件void qwidget mousepressevent qmouseevent event elseif event button qt rightbutton elseif event button qt midbutton 滑鼠移動事件void qwidget mousemovee...

Qt的滑鼠事件

qt裡常用的滑鼠事件有mousepressevent mousemoveevent mousereleaseevent mousedoubleclickevent滑鼠事件方法。void mousepressevent qmouseevent e void mousemoveevent qmousee...