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

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

    Для изменения внешнего вида указателя мыши при вхождении его в область компонента предназначены следующие методы класса QWidget:

    Управлять видом указателя для всего приложения сразу можно с помощью следующих статических методов из класса QApplication:

    Изменять внешний вид указателя мыши для всего приложения принято на небольшой промежуток времени - обычно на время выполнения какой-либо операции, в процессе которой приложение не может нормально реагировать на действия пользователя. Чтобы информировать об этом пользователя, указатель принято выводить в виде песочных часов (атрибут WaitCursor) или стрелки с песочными часами (атрибут BusyCursor).

    Метод setOverrideCursor() может быть вызван несколько раз. В этом случае курсоры помещаются в стек. Каждый вызов метода restoreOverrideCursor() удаляет последний курсор, добавленный в стек. Для нормальной работы приложения необходимо вызывать методы setOverrideCursor() и restoreOverrideCursor() одинаковое количество раз.

    Класс QCursor позволяет создать объект курсора с изображением любой формы. Чтобы загрузить изображение, следует передать путь к файлу конструктору класса QPixmap. Для создания объекта курсора необходимо передать конструктору класса QCursor в первом параметре экземпляр класса QPixmap, а во втором и третьем параметрах - координаты "горячей" точки будущего курсора. Пример создания и установки пользовательского курсора:

  self.setCursor(QtGui.QCursor(QtGui.QPixmap("cursor.png"), 0, 0))


   Примечание. "Горячая точка" курсора - пиксель, по которому определяется позиция курсора. Например, если используется курсор в виде перекрестия, то в качестве "горячей точки" можно использовать точку пересечения линий, образующих перекрестие. Если же используется курсор в виде стрелки, то в качестве "горячей точки" можно взять координаты острия стрелки.

    Класс QCursor поддерживает также два статических метода:

    Со следующего шага мы начнем рассматривать технологию drag & drop.




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