Сообщить об ошибке.

События мыши для пера в модуле turtle в Python

Использование событий мыши для пера

В материале представлены функции, отвечающие за привязку событий мыши для активного пера к пользовательским функциям в модуле turtle.

Содержание:


turtle.onclick(fun, btn=1, add=None):

Метод turtle.onclick() связывает событие щелчка кнопкой мыши для активного пера с выполнением функции fun. Если fun=None, то существующие привязки удаляются.

Аргументы:

  • fun: функция с двумя аргументами, которая будет вызвана с координатами точки клика на холсте,
  • btn: номер кнопки мыши, по умолчанию — 1 (левая кнопка мыши),
  • add: если True, то будет добавлена ​​новая привязка, в противном случае она заменит прежнюю привязку.

Пример для анонимной черепахи, т. е. процедурный способ:

>>> import turtle
>>> pen = turtle.Turtle()
>>> def turn(x, y):
...     left(180)
...
# Теперь нажатие мышкой на перо (не на холст) - повернет его.
>>> pen.onclick(turn)
# привязка события будет удалена
>>> pen.onclick(None)

turtle.onrelease(fun, btn=1, add=None):

Метод turtle.onrelease() связывает событие отпускание кнопки мыши для активного пера с выполнением функции fun. Если fun=None, существующие привязки удаляются.

Аргументы:

  • fun: функция с двумя аргументами, которая будет вызвана с координатами точки клика на холсте,
  • btn: номер кнопки мыши, по умолчанию — 1 (левая кнопка мыши),
  • add: если True, то будет добавлена ​​новая привязка, в противном случае она заменит прежнюю привязку.

Пример:

>>> from turtle import Turtle
>>> class MyTurtle(Turtle):
...     def glow(self, x, y):
...         self.fillcolor("red")
...     def unglow(self, x, y):
...         self.fillcolor("")
...
>>> pen = MyTurtle()
# при клике мышкой, цвет 
# заливки становится красным
>>> pen.onclick(pen.glow)
# при отпускании кнопки мыши 
# делает её прозрачной.
>>> pen.onrelease(pen.unglow)

turtle.ondrag(fun, btn=1, add=None):

Метод turtle.ondrag() связывает перемещения мыши для активного пера с выполнением функции fun. Если fun=None, существующие привязки удаляются.

Аргументы:

  • fun: функция с двумя аргументами, которая будет вызвана с координатами точки клика на холсте,
  • btn: номер кнопки мыши, по умолчанию — 1 (левая кнопка мыши),
  • add: если True, то будет добавлена ​​новая привязка, в противном случае она заменит прежнюю привязку.

Замечание: каждой последовательности событий перемещения мыши на черепахе предшествует событие щелчка мыши на этой черепахе.

>>> import turtle
>>> pen = turtle.Turtle()
>>> pen.shape('circle')
>>> pen.ondrag(pen.goto)

Впоследствии, щелчок и перетаскивание ПЕРА (кликом мыши зажмите черный кружок и перетаскивайте) будет перемещать её по экрану, создавая рисунки от руки (если перо опущено).