На этом шаге рассмотрим класс QWheelEvent.
В последнее время часто используются мыши, оснащенные колесиком, следовательно, нужно реализовывать метод для обработки события прокрутки колеса — QWheelEvent, который унаследован от QInputEvent (см. рис. 1 шаг 111).
Объект класса QWheelEvent содержит информацию о событии, вызванном колесиком мыши. Объект события передается в метод wheelEvent() и содержит информацию об угле и направлении, в которое было повернуто колесико, а также о позиции указателя мыши, статусе кнопок мыши и некоторых клавиш клавиатуры. Наряду с методами buttons(), pos() и globalPos(), которые полностью идентичны методам класса события QMouseEvent.
В классе QWheelEvent имеется метод delta(), с помощью которого можно узнать угол поворота колесика мыши. Положительное значение говорит о том, что колесико было повернуто от себя, а отрицательное значение — на себя.
Методы enterEvent() и leaveEvent() вызываются в том случае, когда указатель мыши попадает или покидает область виджета. Их можно переопределить, например, в том случае, если требуется изменить внешний вид виджета. Метод enterEvent() получает объект события типа QEvent и вызывается каждый раз, когда указатель мыши входит в область виджета. Метод leaveEvent() получает объект события типа QEvent и вызывается, когда указатель мыши выходит за пределы области виджета.
Рассмотрим простой пример, демонстрирующий использование методов enterEvent() и leaveEvent(). Картинки меняются местами, в зависимости от того, находится или нет курсор мыши в области виджета (рис.1).
Рис.1. Пример, демонстрирующий применение методов enterEvent() и leaveEvent()
Приведем код заголовочного файла:
class Pict : public QWidget {
Q_OBJECT
public:
Pict(QWidget* pwgt = 0);
protected:
//переопределяем методы
void enterEvent (QEvent*);
void leaveEvent (QEvent*);
};
Файлы приложения можно взять здесь.
На следующем шаге рассмотрим класс QTimerEvent.