Все объекты Canvas поддерживают следующие методы:
.addtag_above(newTag, tagOrId)
Прикрепляет новый тег к объекту, находящемуся прямо над тем, который указан в tagOrId в списке отображения. Аргумент
newTag- это тег, который вы хотите прикрепить, в виде строки.
.addtag_all(newTag)
Прикрепляет указанный тег
newTagко всем объектам на холсте.
.addtag_below(newTag, tagOrID)
Прикрепляет новый тег к объекту, находящемуся прямо под тем, который указан в tagOrId в списке отображения. Аргумент
newTag- это строка тега.
.addtag_closest(newTag, x, y, halo=None, start=None)
Добавляет тег к объекту, ближайшему к экранным координатам (x, y). Если есть два или более объекта на одинаковом расстоянии, выбирается тот, который выше в списке отображения.
Используйте аргумент
halo, чтобы увеличить эффективный размер точки. Например, значение 5 будет рассматривать любой объект в пределах 5 пикселей от (x, y) как перекрывающийся.
Если идентификатор объекта передается в аргументе
start, этот метод помечает объект с наивысшим подходящим значением, находящийся нижеstartв списке отображения.
.addtag_enclosed(newTag, x1, y1, x2, y2)
Добавляет тег
newTagко всем объектам, которые находятся полностью внутри прямоугольника, верхний левый угол которого - (x1,y1), а нижний правый угол - (x2,y2).
.addtag_overlapping(newTag, x1, y1, x2, y2)
Похоже на предыдущий метод, но воздействует на все объекты, которые имеют хотя бы одну общую точку с заданным прямоугольником.
.addtag_withtag(newTag, tagOrId)
Добавляет тег
newTagк объекту или объектам, указанным в tagOrId.
.bbox(tagOrId=None)
Возвращает кортеж (x1, y1, x2, y2), описывающий прямоугольник, содержащий все объекты, указанные в tagOrId. Если аргумент опущен, возвращает прямоугольник, содержащий все объекты на холсте. Верхний левый угол прямоугольника - (x1, y1), а нижний правый угол - (x2, y2).
.canvasx(screenx, gridspacing=None)
Преобразует координату x окна
screenxв координату холста. Если заданgridspacing, координата холста округляется до ближайшего кратного этому значению.
.canvasy(screeny, gridspacing=None)
Преобразует координату y окна
screenyв координату холста. Если заданgridspacing, координата холста округляется до ближайшего кратного этому значению.
.coords(tagOrId, x0, y0, x1, y1, ..., xn, yn)
Если передать только аргумент tagOrId, возвращает кортеж координат самого нижнего или единственного объекта, указанного этим аргументом. Количество координат зависит от типа объекта. В большинстве случаев это будет 4-кортеж (x1, y1, x2, y2), описывающий ограничивающий прямоугольник объекта.
Вы можете перемещать объект, передавая новые координаты.
.dchars(tagOrId, first=0, last=first)
Удаляет символы из текстового элемента или элементов. Символы между
firstиlastвключительно удаляются, где эти значения могут быть целочисленными индексами или строкой'end', обозначающей конец текста. Например, для холстаCи элементаI,C.dchars(I, 1, 1)удалит второй символ.
.delete(tagOrId)
Удаляет выбранный объект или объекты, указанные в tagOrId. Если ни один объект не соответствует
tagOrId, это не считается ошибкой.
.dtag(tagOrId, tagToDelete)
Удаляет тег, указанный в
tagToDelete, из объекта или объектов, указанных в tagOrId.
.find_above(tagOrId)
Возвращает идентификатор объекта, находящегося прямо над объектом, указанным в tagOrId. Если несколько объектов совпадают, вы получите самый верхний. Возвращает пустой кортеж, если передан идентификатор самого верхнего объекта.
.find_all()
Возвращает список идентификаторов объектов для всех объектов на холсте, от самого низкого до самого высокого.
.find_below(tagOrId)
Возвращает идентификатор объекта объекта, находящегося прямо под тем, который указан в tagOrId. Если несколько объектов совпадают, вы получите самый нижний. Возвращает пустой кортеж, если передан идентификатор самого низкого объекта.
.find_closest(x, y, halo=None, start=None)
Возвращает одноэлементный кортеж, содержащий идентификатор объекта объекта, ближайшего к точке
(x, y). Если подходящих объектов нет, возвращает пустой кортеж.
Используйте аргумент
halo, чтобы увеличить эффективный размер точки. Например,halo=5будет рассматривать любой объект в пределах 5 пикселей от(x, y)как перекрывающийся.
Если в качестве аргумента
startпередается идентификатор объекта, этот метод возвращает объект с наивысшим подходящим значением, находящийся нижеstartв списке отображения.
.find_enclosed(x1, y1, x2, y2)
Возвращает список идентификаторов объектов всех объектов, находящихся полностью внутри прямоугольника, верхний левый угол которого -
(x1, y1), а нижний правый угол -(x2, y2).
.find_overlapping(x1, y1, x2, y2)
Похож на предыдущий метод, но возвращает список идентификаторов объектов всех объектов, которые имеют хотя бы одну общую точку с данным прямоугольником.
.find_withtag(tagOrId)
Возвращает список идентификаторов объектов объекта или объектов, указанных в tagOrId.
.focus(tagOrId=None)
Перемещает фокус на объект, указанный в tagOrId. Если таких объектов несколько, фокус перемещается на первый в списке отображения, который позволяет вставить курсор. Если нет соответствующих объектов или холст не имеет фокуса, фокус не перемещается.
Если аргумент опущен, возвращает идентификатор объекта, который имеет фокус, или
'', если ни один из них не имеет фокуса.
.gettags(tagOrId)
Если tagOrId - это идентификатор объекта, возвращает список всех тегов, связанных с этим объектом. Если аргумент - это тег, возвращает все теги для самого нижнего объекта с этим тегом.
.icursor(tagOrId, index)
Предполагая, что выбранный элемент позволяет вставлять текст и имеет фокус, устанавливает курсор вставки в
index, который может быть целочисленным индексом или строкой'end'. В противном случае эффекта не имеет.
.index(tagOrId, specifier)
Возвращает целочисленный индекс данного спецификатора
specifierв текстовом элементе, указанном в tagOrId (самый нижний, еслиtagOrIdуказывает на несколько объектов). Возвращаемое значение - соответствующая позиция в виде целого числа в соответствии с обычным соглашением Python, где 0 - позиция перед первым символом.
Аргумент
specifierможет быть любым из:
tk.INSERT, чтобы вернуть текущую позицию курсора вставки.
tk.END, чтобы вернуть позицию после последнего символа элемента.
tk.SEL_FIRST, чтобы вернуть позицию начала текущего текстового выделения. Tkinter выдаст исключениеtk.TclError, если текстовый элемент в данный момент не содержит текстового выделения.
tk.SEL_LAST, чтобы вернуть позицию после конца текущего текстового выделения, или вызвать исключениеtk.TclError, если элемент в данный момент не содержит выделения.
- Строка вида “
@x,y”, чтобы вернуть символ, содержащий координаты холста(x, y). Если эти координаты находятся выше или слева от текстового элемента, метод вернет 0; если координаты справа или ниже элемента, метод вернет индекс конца элемента.
.insert(tagOrId, specifier, text)
Вставляет заданную
строкув объект или объекты, указанные в tagOrId, в позицию, заданную аргументомspecifier.
Значения
specifierмогут быть:
- Любые ключевые слова
tk.INSERT,tk.END,tk.SEL_FIRSTилиtk.SEL_LAST. См. описание методаindexвыше для интерпретации этих кодов.
- Позиция желаемой вставки, используя обычное соглашение Python для позиций в строках.
.itemcget(tagOrId, option)
Возвращает значение данного параметра конфигурации
optionв выбранном объекте (или самом нижнем объекте, если tagOrId указывает на несколько). Это аналогично методу.cget()для объектов Tkinter.
.itemconfigure(tagOrId, option, ...)
Если не заданы аргументы
option, возвращает словарь, ключи которого - опции объекта, указанного в tagOrId (самый нижний, еслиtagOrIdуказывает на несколько объектов).
Чтобы изменить опцию конфигурации указанного элемента, передайте один или несколько ключевых аргументов в форме
option=value.
.move(tagOrId, xAmount, yAmount)
Перемещает объекты, указанные в tagOrId, добавляя
xAmountк их X-координатам иyAmountк их Y-координатам.
.postscript(option, ...)
Генерирует инкапсулированное PostScript-представление текущего содержимого холста. Опции включают:
colormodeИспользуйте 'color'для цветного вывода,'gray'для оттенков серого или'mono'для черно-белого.fileЕсли указан, указывает имя файла, куда будет записан PostScript. Если этой опции нет, PostScript возвращается в виде строки. heightСколько высоты Y холста печатать. По умолчанию - вся видимая высота холста. rotateЕсли false, страница будет отображаться в портретной ориентации; если true, в альбомной. xЛевая координата холста области для печати. yВерхняя координата холста области для печати. widthСколько ширины X холста печатать. По умолчанию - видимая ширина холста.
.scale(tagOrId, xOffset, yOffset, xScale, yScale)
Масштабирует все объекты в зависимости от их расстояния от точки P=(
xOffset,yOffset). Масштабные коэффициентыxScaleиyScaleоснованы на значении 1.0, что означает отсутствие масштабирования. Каждая точка в объектах, выбранных по tagOrId, перемещается так, чтобы ее расстояние по X от P умножалось наxScale, а по Y умножалось наyScale.
Этот метод не изменит размер текстового элемента, но может переместить его.
.scan_dragto(x, y, gain\=10.0)
См. метод
.scan_mark()ниже.
.scan_mark(x, y)
Этот метод используется для реализации быстрого прокручивания холста. Идея состоит в том, что пользователь нажимает и удерживает кнопку мыши, а затем перемещает мышь вверх, чтобы просканировать (прокрутить) холст горизонтально и вертикально в этом направлении с той скоростью, которая зависит от того, насколько далеко переместилась мышь с момента нажатия кнопки мыши.
Для реализации этой функции привяжите событие нажатия кнопки мыши к обработчику, который вызывает
scan_mark(x, y), гдеxиy- текущие координаты мыши. Привяжите событие<Motion>к обработчику, который, предполагая, что кнопка мыши все еще нажата, вызываетscan_dragto(x, y, gain), гдеxиy- текущие координаты мыши.
Аргумент
gainконтролирует скорость сканирования. Этот аргумент имеет значение по умолчанию 10.0. Используйте большие числа для более быстрого сканирования.
.select_adjust(oid, specifier)
Этот метод регулирует границы текущего выделения текста, чтобы включить позицию, заданную аргументом
specifier, в текстовый элемент с идентификатором объектаoid.
Текущая якорная позиция выбора также устанавливается в указанную позицию. Для обсуждения якорной позиции выбора см. метод
select_fromхолста ниже.
Для значений
specifierсм. методinsertхолста выше.
.select_clear()
Удаляет текущее выделение текста, если оно установлено. Если текущего выделения нет, метод ничего не делает.
.select_from(oid, specifier)
Этот метод устанавливает якорную позицию выбора в позицию, заданную аргументом
specifier, в текстовом элементе с идентификатором объектаoid.
В настоящее время выбранный текст на данном холсте определяется тремя позициями: начальной позицией, конечной позицией и якорной позицией выбора, которая может находиться где угодно между этими двумя позициями.
Чтобы изменить позицию текущего выбранного текста, используйте этот метод в сочетании с методами холста
select_adjust,select_fromиselect_to(см. ниже).
.select_item()
Если на этом холсте есть текущее выделение текста, возвращает идентификатор объекта текстового элемента, содержащего выбор. Если текущего выделения нет, этот метод возвращает
None.
.select_to(oid, specifier)
Этот метод изменяет текущее выделение текста так, чтобы оно включало якорную позицию и позицию, заданную
specifier, в текстовом элементе с идентификатором объектаoid. Для значенийspecifierсм. методinsertхолста выше.
.tag_bind(tagOrId, sequence=None, function=None, add=None)
Привязывает события к объектам на холсте. Для выбранного или выбранных объектов по tagOrId ассоциирует обработчик
functionс событиемsequence. Если аргументaddявляется строкой, начинающейся с'+', новое привязывание добавляется к существующим привязкам для заданнойsequence, в противном случае новая привязка заменяет привязку для заданнойsequence.
Для общей информации о привязках событий см. Раздел 54, “События”.
Обратите внимание, что привязки применяются к элементам, имеющим этот тег на момент вызова метода
tag_bind. Если позже теги будут удалены из этих элементов, привязки сохранятся на этих элементах. Если указанный вами тег будет позже применен к элементам, которые не имели этого тега при вызовеtag_bind, эта привязка не будет применена к новым помеченным элементам.
.tag_lower(tagOrId, belowThis)
Перемещает объект или объекты, выбранные по tagOrId, в пределах списка отображения на позицию, непосредственно ниже первого или единственного объекта, указанного тегом или идентификатором
belowThis.
Если существует несколько элементов с тегом
tagOrId, их относительный порядок слоя сохраняется.
Этот метод не влияет на элементы окна холста. Чтобы изменить порядок слоя элемента окна, используйте метод
lowerилиliftна окне.
.tag_raise(tagOrId, aboveThis)
Перемещает объект или объекты, выбранные по tagOrId, в пределах списка отображения на позицию, непосредственно выше первого или единственного объекта, указанного тегом или идентификатором
aboveThis.
Если существует несколько элементов с тегом
tagOrId, их относительный порядок слоя сохраняется.
Этот метод не влияет на элементы окна холста. Чтобы изменить порядок слоя элемента окна, используйте метод
lowerилиliftна окне.
.tag_unbind(tagOrId, sequence, funcId=None)
Удаляет привязки для обработчика
funcIdи событияsequenceиз объекта или объектов холста, указанных по tagOrId. См. Раздел 54, “События”.
.type(tagOrId)
Возвращает тип первого или единственного объекта, указанного по tagOrId. Возвращаемое значение будет одним из строковых значений
'arc','bitmap','image','line','oval','polygon','rectangle','text'или'window'.
.xview(tk.MOVETO, fraction)
Этот метод прокручивает холст относительно его изображения и предназначен для привязки к опции
commandсоответствующей полосы прокрутки. Холст прокручивается горизонтально к позиции, заданнойoffset, где 0.0 перемещает холст в его левое положение, а 1.0 - в его правое положение.
.xview(tk.SCROLL, n, what)
Этот метод перемещает холст влево или вправо: аргумент
whatуказывает на то, на сколько переместить, и может быть либоtk.UNITS, либоtk.PAGES, аnуказывает, на сколько единиц переместить холст вправо относительно его изображения (или влево, если отрицательно).
Размер перемещения для
tk.UNITSопределяется значением опцииxscrollincrementхолста; см. Раздел 22, “Виджет Scrollbar”.
Для перемещений по
tk.PAGESnумножается на девять десятых ширины холста.
.xview_moveto(fraction)
Этот метод прокручивает холст так же, как
.xview(tk.MOVETO, fraction).
.xview_scroll(n, what)
То же, что и
.xview(tk.SCROLL, n, what).
.yview(tk.MOVETO, fraction)
Вертикальный эквивалент прокрутки
.xview(tk.MOVETO,…).
.yview(tk.SCROLL, n, what)
Вертикальный эквивалент прокрутки
.xview(tk.SCROLL,…).
.yview_moveto(fraction)
Вертикальный эквивалент прокрутки
.xview().
.yview_scroll(n, what)
Вертикальный эквивалент прокрутки
.xview(),.xview_moveto()и.xview_scroll().