鼠標滾輪觸發後執行的事件爲:QEvent::QWheel, 這個類爲QWheelEvent
對於應用調用來說,關注的點爲:是否和其他按鈕一起觸發、滾動的距離等。觀察其構造函數:
QWheelEvent(const QPointF & pos, const QPointF & globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | |
QWheelEvent(const QPointF & pos, const QPointF & globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase) | |
QWheelEvent(const QPointF & pos, const QPointF & globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source) |
由於目標是讓表格滾動減速,考慮修改qt4Delta的值,讓軟件識別的滾動減少,從而實現減速。實現代碼:
如此改動能夠在全局修改滾輪的速度。但是如果涉及到非表格控件,可能會因爲重新構造的Event非法報錯。
其實Qt留給了開發者一個使用接口:
使用setWheelScorllLines() 即可設置, 需要給QApplication設置,通常在Main函數裏執行。