Обработчики событий области рисования (Canvas)




Модуль Graph

Версия 1.5.3 от 06.12.2021

Общее описание

Модуль graph – это набор функций, который представляет собой «обёртку» для создания учебных графических программ на языке Python на основе виджета Canvas библиотеки Tkinter.

Работа с окном

mainWindow()

функция возвращает ссылку на объект главного окна, что позволяет использовать все возможности Tkinter.

windowSize(width, height)

установка ширины (width) и высоты (height) рабочей области окна; при вызове без параметров возвращает кортеж (width,height) с текущими размерами:

width, height = windowSize()

canvas()

функция возвращает ссылку на объект области рисования, что позволяет использовать все возможности виджета Canvas пакета Tkinter.

canvasPos(x, y)

установка координат (x,y) области рисования; при вызове без параметров возвращает кортеж (x,y) с текущими размерами:

x, y = canvasPos()

canvasSize(width, height)

установка ширины (width) и высоты (height) области рисования; при вызове без параметров возвращает кортеж (width,height) с текущими размерами:

width, height = canvasSize()

При изменении размера области рисования автоматически корректируются и размеры окна (не нужно вызывать windowSize).

viewCoords(x1, x2, y1, y2)

устанавливает для каждой оси диапазоны математической декартовой системе координат, которые отображаются в области рисования; при вызове без параметров возвращается к экранной системе координат.

pointInView(x, y)

логическая функция, которая возвращает True, если точка с координатами (x,y) находится в пределах области рисования и False, если точка находится вне области.

circleInView(x, y, r)

логическая функция, которая возвращает True, если окружность с центром в точке (x,y) радиуса r находится в пределах области рисования и False, если точка находится вне области.

run()

запускает основной цикл обработки сообщений; вызов этой функции должен быть последней строчкой в любой графической программе.

close()

завершает основной цикл обработки сообщений; закрывает графическое окно.

Обработчики событий области рисования (Canvas)

onTimer(fn, time)

установить функцию fn, которая будет вызываться по таймеру каждые time миллисекунд.

onKey(key)

onKey(fn)

onKey(key, fn)

установить функцию fn как обработчик нажатия клавиши с символьным обозначением key; если функция не указана, обработчик нажатия этой клавиши отключается; если не указана клавиша, устанавливается один обработчик на все клавиши; функция fn должна принимать один параметр – блок данных о событии; через поле keycode этого блока можно получить код нажатой клавиши:

def keyPressed(event):

if event.keycode == VK_LEFT:

move(obj, x-5, y)

Список кодов виртуальных клавиш, определенных в модуле graph.py:

VK_SPACE = 0x20

VK_PRIOR = 0x21 # PAGE UP key

VK_NEXT = 0x22 # PAGE DOWN key

VK_END = 0x23 # END key

VK_HOME = 0x24 # HOME key

VK_LEFT = 0x25

VK_UP = 0x26

VK_RIGHT = 0x27

VK_DOWN = 0x28

VK_INSERT = 0x2D # INS key

VK_DELETE = 0x2E # DELETE key

VK_BACK = 0x08 # BACKSPACE key

VK_TAB = 0x09 # TAB key

VK_RETURN = 0x0D # RETURN key

VK_ESCAPE = 0x1B # ESC key

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

import tkinter as tk

def __keyPress(event):

print("Key Press Event:")

print(" event.char:", event.char)

print(" event.keysym:", event.keysym)

print(" event.keycode:", event.keycode)

print(" event.keysym_num:", event.keysym_num)

root = tk.Tk()

root.bind("<KeyPress>", __keyPress)

tk.mainloop()

onMouseMove(fn)

установить функцию fn как обработчик события движения мыши; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши:

def handleMove(event):

print("Координаты: (%s %s)" % (event.x, event.y))

print("Относительно экрана: (%s %s)" %

(event.x_root, event.y_root))

onMouseDown(fn, btn)

установить функцию fn как обработчик нажатия кнопки мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой); если номер кнопки мыши не задан, устанавливается обработчик для всех кнопок; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши (см. выше).

onMouseUp(fn, btn)

установить функцию fn как обработчик отпускания кнопки мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой); если номер кнопки мыши не задан, устанавливается обработчик для всех кнопок; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши (см. выше).

onMouseClick(fn, btn)

установить функцию fn как обработчик щелчка кнопкой мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой);в текущей версии равносильно обработчику onMouseUp.

onMouseDblClick(fn, btn)

установить функцию fn как обработчик двойного щелчка кнопкой мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой); если номер кнопки мыши не задан, устанавливается обработчик для всех кнопок; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши (см. выше).



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-12-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: