Прокрутка колесика мыши

Некоторые мыши комплектуются колесиком, которое обычно используется для управления прокруткой некоторой области. Обработать поворот этого колесика позволяет метод wheelEvent(). Прототип метода:

virtual void wheelEvent(QWheelEvent *event)

Через параметр доступен экземпляр класса QWheelEvent, который позволяет получить дополнительную информацию о событии. Класс QWheelEvent содержит следующие методы:

  • angleDelta() — возвращает угол поворота колесика по осям X и Y. Значение может быть положительным или отрицательным в зависимости от направления поворота. Прототип метода:
QPoint angleDelta() const
  • position() — возвращает экземпляр класса QPointF с вещественными координатами в пределах области компонента. Прототип метода:
QPointF position() const
  • scenePosition() — возвращает координаты относительно окна или сцены. Прототип метода:
QPointF scenePosition() const
  • globalPosition() — возвращает экземпляр класса QPointF с координатами в пределах экрана. Прототип метода:
QPointF globalPosition() const
  • buttons() — позволяет определить все кнопки, которые нажаты одновременно. Возвращает комбинацию значений атрибутов Qt::LeftButton, Qt::RightButton и Qt::MiddleButton. Прототип метода:
Qt::MouseButtons buttons() const

Пример определения кнопки мыши:

if (e->buttons() & Qt::LeftButton) {
   qDebug() << "Нажата левая кнопка мыши";
}
  • modifiers() — позволяет определить, какие клавиши-модификаторы (<Shift>, <Ctrl>, <Alt> и др.) были нажаты вместе с кнопкой мыши. Возможные значения мы уже рассматривали в разд. 4.8.3. Прототип метода:
Qt::KeyboardModifiers modifiers() const

Если событие обработано, то нужно вызвать метод accept() через объект события. Чтобы родительский компонент мог получить событие, вместо метода accept() необходимо вызвать метод ignore().

Учебник C++ (Qt Creator и MinGW)
Учебник C++ (Qt Creator и MinGW) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов