Шаг 117.
Библиотека Qt.
Класс QWheelEvent

    На этом шаге рассмотрим класс 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.




Предыдущий шаг Содержание Следующий шаг