QT: :QWheelEvent

QWheelEvent 類參考
QWheelEvent類包含用於描述鼠標滑輪事件的相關參數。
#include<QWheelEvent>
繼承至:QInputEvent

公有函數:

  1. QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,   
  2.               Qt::Orientation orient = Qt::Vertical )  
  3.                 
  4. QWheelEvent ( const QPoint & pos, const QPoint & globalPos, int delta, Qt::MouseButtons buttons,  
  5.               Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )  
  6.                 
  7. Qt::MouseButtons buttons () const  
  8. int delta () const  
  9. const QPoint & globalPos () const  
  10. int globalX () const  
  11. int globalY () const  
  12. Qt::Orientation orientation () const  
  13. const QPoint & pos () const  
  14. int x () const  
  15. int y () const  
1個從父類QInputEvent繼承過來的公有函數:Qt::KeyboardModifiersmodifiers () const

6個從QEvent繼承過來的公有函數:

  1. QEvent ( Type type )  
  2.              virtual ~QEvent ()  
  3.              void accept ()  
  4.              void ignore ()  
  5.              bool isAccepted () const  
  6.              void setAccepted ( bool accepted )  
  7.              bool spontaneous () const  
  8.              Type type () const  
詳細描述:

    QWheelEvent類用於描述鼠標轉輪(middle_mouse_button)事件.當鼠標指針定位於一個窗口界面之上時,
    滑動鼠標轉輪會產生一系列事件(QWheelEvent),這些事件會被傳送給鼠標指針所在的父窗口,如果此窗口不處理此事件(Event)
    該鼠標事件默認情況下會傳送給具有輸入焦點的窗口。 計算滑輪滾動軸滑動的距離可以用函數delta()計算,函數pos()和globalpos()
    可以返回再一次鼠標事件中鼠標指針的當前位置。
    
    一個鼠標滑輪事件包含一些指定的接受標誌用於指出該事件是否會被接收和處理,如果不處理該事件可以調用ignore(),
    這樣可以保證該事件會被傳送給鼠標指針所在的父窗口。
    
    函數QWidget::setEnabled()可以用於禁止/允許一個窗口接收鼠標和鍵盤事件。
    事件處理函數QWidget::wheelEvent()被用於接收鼠標滑輪事件。

    

成員函數描述:

  1. QWheelEvent::QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons,   
  2.                            Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )  
  3. 創建一個wheelEvent對象,參數pos代表鼠標指針在窗口中的當前位置,通常用globalPos()初始化QCursor::pos(),但並不總是正確的。  
  4. 如果需要顯示指定一個全局位置,可以用其他的構造函數。  
  5.   
  6.   
  7. 參數button用於描述在鼠標事件過程中鼠標按鍵的狀態(state),delta()可以返回滑動的距離,參數modifiers用於描述在鼠標事件中  
  8. 鼠標狀態位改變時的參數值 (比如鼠標的左中右按鍵的切換),參數orient用於指示鼠標滑輪滾動的方向(比如向上或者向下)。  
  9.   
  10.   
  11. QWheelEvent::QWheelEvent ( const QPoint & pos, const QPoint & globalPos, int delta, Qt::MouseButtons buttons,   
  12.                            Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )  
  13. 創建一個wheelEvent對象,參數pos用於指出鼠標指針在當前窗口中的當前位置,要返回鼠標指針在全局座標系統中的位置可以調用globalPos(),  
  14. 函數delta()用於返回鼠標滑輪滑動的距離,參數modifiers用於描述在鼠標事件中鼠標狀態位改變時的參數值 (比如鼠標的左中右按鍵的切換),  
  15. 參數orient用於指示鼠標滑輪滾動的方向(比如向上或者向下)。  
  16.   
  17. Qt::MouseButtons QWheelEvent::buttons () const  
  18. 當事件發生時,返回鼠標狀態。  
  19.   
  20. int QWheelEvent::delta () const  
  21. 當鼠標滑輪在滾動時用於返回滑動的距離,該值等於鼠標旋轉角度的8倍。正數值表示滑輪相對於用戶在向前滑動,  
  22. 相反,負數值表示滑輪相對於用戶是向後滑動的。  
  23.   
  24. 大多數鼠標工作在單步15度的情況下(意思是鼠標轉輪滑動一圈是360度,細化成單步就是1度,那麼鼠標轉輪滑動一度對應於窗口界面單位尺度的8倍),在這種情況下,delta的返回值是120的倍數。計算公式:120 units/8=15度。  
  25.   
  26. 但是,有些鼠標有更好的解決方案,而且對頂單步值小於15度即delta()的返回值比120要小,爲了支持這種可能性,在鼠標事件中既可以累積該返回值,  
  27. 直到該返回值累加到120爲止,然後滾動窗口;或者可以小幅度的滾動窗口作爲對每一次鼠標滾動事件的響應,從而計算該返回值。例如:  
  28.  void MyWidget::wheelEvent(QWheelEvent *event)  
  29.  {  
  30.      int numDegrees = event->delta() / 8;  
  31.      int numSteps = numDegrees / 15;  
  32.   
  33.   
  34.      if (event->orientation() == Qt::Horizontal) {         
  35.          scrollHorizontally(numSteps);       //水平滾動  
  36.      } else {  
  37.          scrollVertically(numSteps);       //垂直滾動  
  38.      }  
  39.      event->accept();      //接收該事件  
  40.  }  
  41.   
  42. const QPoint & QWheelEvent::globalPos () const  
  43. 返回鼠標指針的全局位置,這個特性對於異步窗口系統很重要譬如X11,然後當你滑動窗口作爲鼠標響應事件時,  
  44. 可以用globalPos()函數與QCursor::pos()函數進行區分當前鼠標指針所在的位置。  
  45.   
  46. int QWheelEvent::globalX () const  
  47. 返回鼠標指針全局座標中X軸所對應的座標值。  
  48.   
  49. int QWheelEvent::globalY () const  
  50. 返回鼠標指針全局座標中Y軸所對應的座標值。  
  51.   
  52. Qt::Orientation QWheelEvent::orientation () const  
  53. 返回鼠標轉輪滾動的方向,當爲整數值時表示向前,負數值時表示向後。方向參考系可選用戶本身。  
  54.   
  55. const QPoint & QWheelEvent::pos () const  
  56. 返回鼠標指針相對於窗口的座標值QPoint(x,y),如果滾動窗口可以用globalPos()替換本函數從而返回全局座標值。  
  57.   
  58. int QWheelEvent::x () const  
  59. 返回鼠標指針相對於窗口的相對位置值的X座標值。  
  60.   
  61. int QWheelEvent::y () const  
  62. 返回鼠標指針相對於窗口的相對位置值的Y座標值。  
發佈了1 篇原創文章 · 獲贊 31 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章