В материале представлены функции, отвечающие за привязку событий мыши для активного пера к пользовательским функциям в модуле turtle
.
turtle.onclick()
щелчка кнопкой мыши,turtle.onrelease()
отпускание кнопкой мыши,turtle.ondrag()
перемещение курсора мыши.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)
Впоследствии, щелчок и перетаскивание ПЕРА (кликом мыши зажмите черный кружок и перетаскивайте) будет перемещать её по экрану, создавая рисунки от руки (если перо опущено).