Canvas

Виджет, холст

class tkinter.Canvas(**kwargs)

Наследник Widget, XView, YView

  • master - родительский виджет

  • cnf - словарь

  • closeenough -

  • confine - булево, выключить скрол холста за пределы региона

  • height - int, высота виджета

  • insertbackground -

  • insertborderwidth -

  • insertofftime -

  • insertontime -

  • insertwidth -

  • offset -

  • scrollregion - кортеж (w, n, e, s), что-то там с покруткой

  • selectbackground -

  • selectborderwidth -

  • selectforeground -

  • state -

  • width - int, ширина виджета

  • xscrollcommand - обработчик горизонтальной прокрутки

  • xscrollincrement - величина горизонтальной прокрутки

  • yscrollcommand - обработчик вертикальной прокрутки

  • yscrollincrement - величина вертикальной прокрутки

canvas = Canvas(master)

# биндим проведение мышкой
canvas.bind("<B1-Motion>", lambda event: pass)
canvas.bind("<Double-1>", lambda event: pass)
canvas = Canvas(
    master,
    width=300,
    height=300,
    bg="white",
    relief=SUNKEN,
)
# холст с прокруткой

canv = Canvas(master)
canv.config(width=300, height=200)
canv.config(scrollregion=(0,0,300, 1000))
canv.config(highlightthickness=0)

sbar = Scrollbar(master)
sbar.config(command=canv.yview)

canv.config(yscrollcommand=sbar.set)
addtag(tag, method, *args)

Добавляет тег элементам

  • tag - тег

  • method - способ добавления
    • above - выше

    • all - всем

    • below - ниже

    • closest - ближе

    • enclosed -

    • overlaping

    • withtag

addtag_above(newtag, tagOrId)

Добавляет новый тег элементу

addtag_all(newtag)

Добавляет новый тег всем элементам

addtag_below(newtag, tagOrId)

Добавляет новый тег элементу

addtag_closest(newtag, x, y, halo=None, start=None)

Добавляет новый тег элементу, который ближе к указанной точке

addtag_enclosed(newtag, x1, y1, x2, y2)

Добавляет тег элементам, в указанной области

addtag_overlapping(self, newtag, x1, y1, x2, y2)

Добавляет тег элементам, перекрывающих указанную область

addtag_withtag(newtag, tagOrId)

Добавляет тег элементу по его идентификатору или тегу

canvas.addtag_withtag("three", "one")
bbox(*args)

Возвращает координаты прямоугльника, в которой находятся указанные объекты холста

head = canvas.find_withtag("head")
x1, y1, x2, y2 = canvas.bbox(head)
canvasx(screenx, gridspacing=None)

Возвращает координату на канвасе по координате экрана

canvasy(screeny, gridspacing=None)

Возвращает координату на канвасе по координате экрана

coords(*args)

Возвращает область, в которой находятся указанные объекты

create_arc(*args, **kwargs)

Рисует круг, вписанную в прямоугольник, и возвращает его идентификатор

  • activedash

  • activefill

  • activeoutline

  • activeoutlinestipple

  • activestipple

  • activewidth

  • dash

  • dashoffset

  • disableddash

  • disabledfill

  • disabledoutline

  • disabledoutlinestipple

  • disabledstipple

  • disabledwidth

  • extent - число, угол, величина рисуемой окружности

  • fill - строка, цвет заполнения

  • offset

  • outline - цвет контура

  • outlineoffset

  • outlinestipple

  • start - число, угол, начало рисования

  • state

  • stipple

  • style

  • tag - название объекта

  • tags

  • width - ширина контура

create_bitmap(*args, **kwargs)
  • activebackground -

  • activebitmap -

  • activeforeground -

  • anchor -

  • background -

  • bitmap -

  • disabledbackground -

  • disabledbitmap -

  • disabledforeground -

  • foreground -

  • state -

  • tags -

create_image(h, w, **kwargs)

Рисует изображение и возвращает его идентификатор

  • activeimage

  • anchor - NW

  • disabledimage

  • image - Image, рисунок

  • state

  • tags

image_id = canvas.create_image(
    height,
    width,
    image=PhotoImage(),
    anchor=NW,
)
create_line(x1, y1, x2, y2, ..., x-n, y-n, **kwargs)

Рисует линию и возвращает его идентификатор

  • activedash

  • activefill

  • activestipple

  • activewidth

  • arrow

  • arrowshape

  • capstyle

  • dash - для рисования штрихами, длина пунктира и пропуска, например (4, 2)

  • dashoffset

  • disableddash

  • disabledfill

  • disabledstipple

  • disabledwidth

  • fill - цвет линии

  • joinstyle

  • offset

  • smooth

  • splinesteps

  • state

  • stipple

  • tags - задает тег для элемента

  • width - ширина линии

line_id = canvas.create_line(
    x1,
    y1,
    x2,
    y2,
    tags="uno",
    fill="green",
    width=10,
)
create_oval(x1, y1, x2, y2, **kwargs)

Рисует овал и возвращает идентификатор

  • activedash

  • activefill

  • activeoutline

  • activeoutlinestipple

  • activestipple

  • activewidth

  • dash

  • dashoffset

  • disableddash

  • disabledfill

  • disabledoutline

  • disabledoutlinestipple

  • disabledstipple

  • disabledwidth

  • fill - цвет заливки

  • offset

  • outline - цвет контура

  • outlineoffset

  • outlinestipple

  • state

  • stipple

  • tags

  • width - ширина границы

oval_id = canvas.create_oval(
    x1,
    y1,
    x2,
    y2,
    fill="red",
    width=2,
)
create_polygon(x1, y1, x2, y2, ..., x-n, y-n, **kwargs)

Рисуем замкнутый контур и возвращает его идентификатор

  • activedash

  • activefill

  • activeoutline

  • activeoutlinestipple

  • activestipple

  • activewidth

  • dash

  • dashoffset

  • disableddash

  • disabledfill

  • disabledoutline

  • disabledoutlinestipple

  • disabledstipple

  • disabledwidth

  • fill - цвет заливки

  • joinstyle

  • offset

  • outline - цвет линии

  • outlineoffset

  • outlinestipple

  • points - список точек

  • smooth

  • splinesteps

  • state

  • stipple

  • tags

  • width - высота линии

create_rectangle(x1, y1, x2, y2, **kwargs)

Рисует многоугольник и возвращает его идентификатор

  • activedash

  • activefill

  • activeoutline

  • activeoutlinestipple

  • activestipple

  • activewidth

  • dash

  • dashoffset

  • disableddash

  • disabledfill

  • disabledoutline

  • disabledoutlinestipple

  • disabledstipple

  • disabledwidth

  • fill - цвет заливки

  • offset

  • outline - цвет контурв

  • outlineoffset

  • outlinestipple

  • state

  • stipple

  • tags

  • width - ширина границ

rectangle_id = canvas.create_rectangle(
    x1,
    y1,
    x2,
    y2,
    width=5,
    fill="red",
)
create_text(x, y, **kwargs)

Рисует текст и возвращает его идентификатор

  • activefill

  • activestipple

  • anchor - W

  • disabledfill

  • disabledstipple

  • fill

  • font - Purisa

  • justify

  • offset

  • state

  • stipple

  • tags

  • text - текст

  • width

text_id = canvas.create_text(
    x,
    y,
    text="Some text",
)
create_window(x, y, window)

Рисует виджет на холсте и возвращает id

  • anchor

  • height

  • state

  • tags

  • width

  • window

canvas.create_window(x, y, widget)
dchars(item, from, to=None)

Удаляет текст из элемента

delete(**kwargs)

Удаляет объекты с холста

apple = canvas.find_withtag('apple')
canvas.delete(apple[0])
dtag(item, tag=None)
find_above(item)
find_all()
find_below(item)
find_closest(x, y, halo=None, start=None)
find_enclosed(x1, y1, x2, y2)
find_overlapping(x1, y1, x2, y2)

Возвращает все объекты, которые находятся в указанной области

find_withtag(tagOrId)

Возвращает список объектов холста, соответсвующих указанному тегу или идентификатору

canvas.find_withtag('one')
# (1, )
focus(item=None)
gettags(*args)

Возвращает теги элементов

canvas.gettags(item)
# ('one', 'two', 'three')
icursor(item, index)
index(item, index)
insert(item, index, text)

Добавляет текст в редактируемый элемент

itemconfig(id, **kwargs)
itemconfigure(id, **kwargs)

Конфигурирует объект рисования

  • tags - изменяет теги объекта

canvas.itemconfig(item, tags=("one", "two"))
itemcget(tagOrId, option)

Возвращает значение свойства элемента

lift()
tkraise()
tag_raise()

Поднимает объект относительно других

lower()
tag_lower()

Опускает объект относитльно других

move(tag, x, y)

Сдвигает объекты

postscript(*args)
scale(tagOrId, xscale, yscale, xoffset, yoffset)

Изменяет размер элемента

scan_dragto(x, y, gain=10)
scan_mark(x, y)
select_adjust(tagOrId, index)
select_clear()
select_from(tagOrId, index)
select_item()
select_to(tagOrId, index)
tag_bind(tagOrId, sequence=None, func=None, add=None)

Связываем обработчик с событиями элемента

canvas.tag_bind(obj_id, "<Double-1>", lambda event: pass)
tag_unbind(tagOrId, sequence, funcid=None)
type(tagOrId)