Шаг 67.
Библиотека PyQt5.
Обработка сигналов и событий. События мыши. Перемещение указателя мыши

    На этом шаге мы рассмотрим методы, используемые для обработки этого события.

    Чтобы обработать перемещение указателя мыши, необходимо переопределить метод mouseMoveEvent(self, <event>). Через параметр <event> доступен экземпляр класса QMouseEvent, содержащий дополнительную информацию о событии. Методы этого класса мы уже рассматривали на предыдущем шаге. Следует учитывать, что метод button() при перемещении мыши возвращает значение QtCore.Qt.NoButton.

    По умолчанию метод mouseMoveEvent() вызывается только в том случае, если при перемещении удерживается нажатой какая-либо кнопка мыши. Это сделано специально, чтобы не создавать лишних событий при обычном перемещении указателя мыши. Если необходимо обрабатывать любые перемещения указателя в пределах компонента, следует вызвать у этого компонента метод setMouseTracking(), которому передать значение True. Чтобы обработать все перемещения внутри окна, нужно дополнительно захватить мышь вызовом метода grabMouse().

    Метод pos() объекта события возвращает позицию точки в системе координат текущего компонента. Чтобы преобразовать координаты точки в систему координат родительского компонента или в глобальную систему координат, нужно воспользоваться следующими методами класса QWidget:

    На следующем шаге мы рассмотрим наведение и увод указателя.




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