Эти методы доступны для всех текстовых виджетов:
.bbox(index)
Возвращает ограничивающую рамку для символа с заданным индексом, представляющую собой 4-кортеж
(x, y, width, height). Если символ не виден, возвращаетсяNone. Обратите внимание, что этот метод может не вернуть точное значение, если вы не вызовете метод.update_idletasks()(см. Раздел 26, " Универсальные методы виджетов").
.compare(index1, op, index2)
Сравнивает позиции двух индексов в текстовом виджете и возвращает true, если между
index1иindex2выполняется соотношениеop. Параметрopуказывает, какое сравнение использовать, одно из:'<','<=','==','!=','>=', или'>'.
Например, для текстового виджета
t,t.compare('2.0', '<=', END)возвращает истину, если начало второй строки находится перед или в конце текста вt.
.delete(index1, index2=None)
Удаляет текст, начинающийся сразу после
index1. Если второй аргумент опущен, удаляется только один символ. Если указан второй индекс, удаление продолжается до символа послеindex2, но не включая его. Напомним, что индексы располагаются между символами.
.dlineinfo(index)
Возвращает ограничительную рамку для строки, содержащей заданный
index. О форме границы и предостережении по поводу обновления неработающих задач см. определение метода.bboxвыше.
.edit_modified(arg=None)
Запрашивает, устанавливает или снимает флаг modified. Этот флаг используется для отслеживания того, было ли изменено содержимое виджета. Например, если вы реализуете текстовый редактор в виджете Text, вы можете использовать флаг modified, чтобы определить, изменилось ли его содержимое с момента последнего сохранения в файл.
При вызове без аргумента этот метод возвращает
True, если флаг modified был установлен, иFalse, если он не установлен. Вы также можете явно установить флаг modified, передав этому методу значениеTrue, или снять его, передав значениеFalse.
Любая операция, вставляющая или удаляющая текст, будь то действия программы или пользователя, а также операция отмены/возврата, установит флаг модификации.
.edit_redo()
Выполняет операцию повторного редактирования. Подробнее см. в Раздел 24.7, "Стек отмены/возврата виджета Text".
.edit_reset()
Очищает стек отмены.
.edit_separator()
Помещает разделитель в стек отмены. Этот разделитель ограничивает область действия будущей операции отмены только теми изменениями, которые были внесены с момента внесения разделителя. Подробнее см. в Раздел 24.7, "Стек отмены/возврата виджета Text".
.edit_undo()
Отменяет все изменения содержимого виджета, сделанные с тех пор, как последний разделитель был помещен в стек отмены, или до самого низа стека, если стек не содержит разделителей. Подробнее см. в Раздел 24.7, "Стек отмены/возврата виджета Text". Если стек отмены пуст, то это ошибка.
.image_create(index[, option=value, ...])
Этот метод вставляет изображение в виджет. Изображение рассматривается как еще один символ, размер которого равен естественному размеру изображения.
Опции для этого метода приведены в таблице ниже. Вы можете передать либо серию аргументов
option=value, либо словарь имен и значений опций.
alignЭта опция определяет, как изображение должно быть выровнено по вертикали, если его высота меньше высоты содержащей его строки. Значениями могут быть topдля выравнивания по верхней части пространства;centerдля выравнивания по центру;bottomдля размещения изображения внизу; илиbaselineдля выравнивания нижней части изображения по базовой линии текста.imageИспользуемое изображение. См. Раздел 5.9, "Изображения". nameВы можете присвоить имя данному экземпляру изображения. Если вы опустите этот параметр, Tkinter сгенерирует уникальное имя. Если вы создадите несколько экземпляров изображения в одном виджете Text, Tkinter сгенерирует уникальное имя, добавив к нему знак " #", за которым последует число.padxЕсли задано, то эта опция представляет собой количество пикселей дополнительного пространства, которое будет добавлено с обеих сторон изображения. padyЕсли задано, эта опция представляет собой количество пикселей дополнительного пространства, которое будет добавлено над и под изображением.
.get(index1, index2=None)
Используйте этот метод для получения текущего текста из виджета. Получение начинается с индекса
index1. Если второй аргумент опущен, вы получаете символ послеindex1. Если вы укажете второй индекс, вы получите текст между этими двумя индексами. Встроенные изображения и окна (виджеты) игнорируются. Если диапазон включает несколько строк, они разделяются символами новой строки ('\n').
.image_cget(index, option)
Чтобы получить текущее значение опции, установленной на встроенном изображении, вызовите этот метод с индексом, указывающим на изображение, и именем опции.
.image_configure(index, option, ...)
Чтобы установить одну или несколько опций для встроенного изображения, вызовите этот метод с индексом, указывающим на изображение в качестве первого аргумента, и одной или несколькими парами
option=value.
Если вы не укажете никаких опций, вы получите словарь, определяющий все опции изображения и соответствующие им значения.
.image_names()
Этот метод возвращает кортеж имен всех встроенных изображений текстового виджета.
.index(i)
Для индекса
iэтот метод возвращает эквивалентную позицию в формате'line.char'.
.insert(index, text, tags=None)
Вставляет заданный
textпо заданномуindex.
Если вы опустите аргумент
tags, новый вставленный текст будет помечен любыми тегами, которые применяются к символам как до, так и после позиции вставки.
Если вы хотите применить один или несколько тегов к вставляемому тексту, укажите в качестве третьего аргумента кортеж строк тегов. Любые теги, применяемые к существующим символам вокруг позиции вставки, игнорируются.
- Примечание: Третий аргумент должен быть кортежем. Если вы укажете аргумент в виде списка, Tkinter не сможет применить теги. Если вы предоставите строку, каждый символ будет рассматриваться как тег.
.mark_gravity(mark, gravity=None)
Изменяет или запрашивает гравитацию существующей метки; объяснение гравитации см. в Раздел 24.2, "Метки виджета Text", выше.
Чтобы задать гравитацию, введите имя метки, а затем либо
tk.LEFT, либоtk.RIGHT. Чтобы узнать гравитацию существующей метки, опустите второй аргумент, и метод вернетtk.LEFTилиtk.RIGHT.
.mark_names()
Возвращает последовательность имен всех меток в окне, включая
tk.INSERTиtk.CURRENT.
.mark_next(index)
Возвращает имя метки, следующей за заданным
index; если следующих меток нет, метод возвращает пустую строку.
Если
indexимеет числовой вид, метод возвращает первую метку на этой позиции. Еслиindex- это метка, то метод возвращает следующую за ней метку, которая может находиться в той же числовой позиции.
.mark_previous(index)
Возвращает имя метки, предшествующей заданному
index. Если предшествующих меток нет, метод возвращает пустую строку.
Если
indexимеет числовой вид, метод возвращает последнюю метку на этой позиции. Еслиindex- это метка, то метод возвращает предыдущую метку, которая может находиться в той же числовой позиции.
.mark_set(mark, index)
Если метка с именем
markне существует, то она создается с помощью гравитацииtk.RIGHTи помещается туда, куда указываетindex. Если метка уже существует, она перемещается в новое место.
Этот метод может изменить положение индексов
tk.INSERTилиtk.CURRENT.
.mark_unset(mark)
Удаляет именованную метку. Этот метод не может быть использован для удаления меток
tk.INSERTилиtk.CURRENT.
.scan_dragto(x, y)
Смотрите
.scan_mark, ниже.
.scan_mark(x, y)
Этот метод используется для реализации быстрой прокрутки виджета Text. Обычно пользователь нажимает и удерживает кнопку мыши в некоторой позиции виджета, а затем перемещает мышь в нужном направлении, и виджет перемещается в этом направлении со скоростью, пропорциональной расстоянию, на которое переместилась мышь с момента нажатия кнопки. Движение может представлять собой любую комбинацию вертикальной или горизонтальной прокрутки.
Чтобы реализовать эту функцию, привяжите событие нажатия кнопки мыши к обработчику, который вызывает
.scan_mark(x, y), гдеxиy- текущее положение мыши. Затем привяжите событие<Motion>к обработчику, который вызывает.scan_dragto(x, y), гдеxиy- новое положение мыши.
.search(pattern, index, option, ...)
Ищет шаблон
pattern(который может быть как строкой, так и регулярным выражением) в буфере, начиная с заданного индексаindex. В случае успеха возвращается индекс в виде'line.char', в случае неудачи - пустая строка.
Допустимыми опциями для этого метода являются:
backwardsУстановите этот параметр в Trueдля поиска в обратном направлении от индекса. По умолчанию активирована опцияforwards.countЕсли вы установите этот параметр в управляющую переменную IntVar, то при совпадении вы сможете получить длину текста, который совпал, используя метод.get()для этой переменной после возврата метода.exactУстановите этот параметр в Trueдля поиска текста, который точно соответствуетpattern. Эта опция используется по умолчанию. Сравните с опциейregexpниже.forwardsУстановите этот параметр в значение Trueдля поиска вперед от индекса. Эта опция используется по умолчанию.regexpУстановите этот параметр в значение True, чтобы интерпретироватьpatternкак регулярное выражение в стиле Tcl. По умолчанию используется поиск точного совпадения сpattern. Регулярные выражения Tcl являются подмножеством регулярных выражений Python и поддерживают следующие возможности:. ^ [c1…] (…) * + ? e1|e2nocaseУстановите этот параметр в 1, чтобы игнорировать регистр. По умолчанию используется поиск с учетом регистра. stopindexЧтобы ограничить поиск, установите этот параметр на индекс, за пределы которого поиск не должен выходить.
.see(index)
Если текст, содержащий заданный индекс, не виден, прокрутите текст до тех пор, пока он не станет виден.
.tag_add(tagName, index1, index2=None)
Этот метод связывает тег с именем
tagNameс областью содержимого, начинающейся сразу после индексаindex1и продолжающейся до индексаindex2. Если опуститьindex2, то тегами будет отмечен только символ послеindex1.
.tag_bind(tagName, sequence, func, add=None)
Этот метод связывает событие со всем текстом, помеченным
tagName. Дополнительные сведения о привязках событий см. в разделе 54, "События", ниже.
Чтобы создать новую привязку для текста с тегами, используйте первые три аргумента:
sequenceуказывает на событие, аfunc- это функция, которую вы хотите вызвать при наступлении этого события.
Чтобы добавить другую привязку к существующему тегу, передайте те же первые три аргумента и
'+'в качестве четвертого аргумента.
Чтобы узнать, какие привязки существуют для данной последовательности в теге, передайте только первые два аргумента; метод вернет связанную функцию.
Чтобы найти все привязки для заданного тега, передайте только первый аргумент; метод возвращает список всех аргументов
sequenceтега.
.tag_cget(tagName, option)
Используйте этот метод для получения значения заданной опции
optionдля заданного имени тегаtagName.
.tag_config(tagName, option, ...)
Чтобы изменить значение опций для тега с именем
tagName, передайте одну или несколько парoption=value.
Если вы передадите только один аргумент, вы получите словарь, определяющий все опции и их значения, действующие в данный момент для именованного тега.
Вот опции для настройки тега:
backgroundЦвет фона для текста с этим тегом. Обратите внимание, что вы не можете использовать bgв качестве аббревиатуры.bgstippleЧтобы фон казался сероватым, установите этот параметр в одно из стандартных имен битмапов (см. Раздел 5.7, "Битовые изображения"). Это не имеет никакого эффекта, если вы также не укажете background.borderwidthШирина границы вокруг текста с этим тегом. По умолчанию 0. Обратите внимание, что вы не можете использоватьbdв качестве аббревиатуры.fgstippleЧтобы текст выглядел сероватым, установите этот параметр как имя битмапа. fontШрифт, используемый для отображения текста с этим тегом. См. Раздел 5.4, "Шрифты". foregroundЦвет, используемый для текста с этим тегом. Обратите внимание, что здесь нельзя использовать аббревиатуру fg.justifyПараметр justify, установленный для первого символа каждой строки, определяет, как эта строка будет выровнена:tk.LEFT(по умолчанию),tk.CENTERилиtk.RIGHT.lmargin1На сколько отступать от первой строки фрагмента текста, содержащего этот тег. По умолчанию используется значение 0. Допустимые значения см. в Раздел 5.1, "Размеры".lmargin2На сколько отступать от последующих строк фрагмента текста, содержащего этот тег. По умолчанию 0.offsetНа сколько поднимать (положительное значение) или опускать (отрицательное значение) текст с этим тегом относительно базовой линии. Используйте это, например, для получения надстрочных или подстрочных знаков. Допустимые значения см. в Раздел 5.1, "Размеры". overstrikeУстановите overstrike=1, чтобы провести горизонтальную линию через центр текста с этим тегом.reliefКакой 3-D эффект использовать для текста с этим тегом. По умолчанию используется relief=tk.FLAT; другие возможные значения см. в Раздел 5.6, " Стили рельефа".rmarginРазмер правого поля для фрагментов текста с этим тегом. По умолчанию 0.spacing1Эта опция определяет, сколько дополнительного вертикального пространства будет помещено над каждой строкой текста с этим тегом. Если строка переносится, то это пространство добавляется только перед первой строкой, которую она занимает на экране. По умолчанию 0.spacing2Эта опция указывает, сколько дополнительного вертикального пространства добавлять между отображаемыми строками текста с этим тегом, когда строка переносится. По умолчанию 0.spacing3Эта опция определяет, сколько дополнительного вертикального пространства будет добавлено под каждой строкой текста с этим тегом. Если строка переносится, это пространство добавляется только после последней строки, которую она занимает на экране. По умолчанию 0.tabsКак будут развернуты табуляции в строках с этим тегом. См. Раздел 24.6, "Установка табуляции в виджете Text". underlineУстановите underline=1для подчеркивания текста с помощью этого тега.wrapНасколько длинные строки будут перенесены в тексте с этим тегом. См. описание опции wrapдля текстовых виджетов выше.
.tag_delete(tagName, ...)
Чтобы удалить один или несколько тегов, передайте их имена в этот метод. Их опции и привязки исчезнут, а теги будут удалены из всех областей текста.
.tag_lower(tagName, belowThis=None)
Этот метод используется для изменения порядка тегов в стеке тегов (объяснение стека тегов см. в разделе 24.5, "Теги виджета Text", выше). Если вы передадите два аргумента, то тег с именем
tagNameбудет перемещен на позицию чуть ниже тега с именемbelowThis. Если вы передадите только один аргумент, то тег будет перемещен в нижнюю часть стека тегов.
.tag_names(index=None)
Если вы передаете аргумент
index, этот метод возвращает последовательность всех имен тегов, которые связаны с символом после этого индекса. Если аргумент не указан, то вы получаете последовательность всех имен тегов, определенных в текстовом виджете.
.tag_nextrange(tagName, index1, index2=None)
Этот метод ищет места в заданной области, где начинается тег с именем
tagName. Искомая область начинается с индексаindex1и заканчивается индексомindex2. Если аргументindex2опущен, поиск ведется до конца текста.
Если в заданной области с тегом есть место, где он начинается, то метод возвращает последовательность
[i0, i1], гдеi0- индекс первого помеченного символа, аi1- индекс позиции сразу после последнего помеченного символа.
Если в области не найдено ни одного начала тега, метод возвращает пустую строку.
.tag_prevrange(tagName, index1, index2=None)
Этот метод ищет места в заданной области, где начинается тег с именем
tagName. Область поиска начинается перед индексомindex1и заканчивается индексомindex2. Если аргументindex2опущен, поиск ведется до конца текста.
Возвращаемые значения такие же, как в
.tag_nextrange().
.tag_raise(tagName, aboveThis=None)
Используйте этот метод, чтобы изменить порядок тегов в стеке тегов (объяснение стека тегов см. выше, в Раздел 24.5, "Теги виджета Text"). Если вы передадите два аргумента, то тег с именем
tagNameбудет перемещен на позицию чуть выше тега с именемaboveThis. Если вы передаете только один аргумент, то этот тег перемещается на вершину стека тегов.
.tag_ranges(tagName)
Этот метод находит все диапазоны текста в виджете, которые помечены именем
tagName, и возвращает последовательность[s0, e0, s1, e1, ...], где каждыйSI- это индекс непосредственно перед первым символом диапазона, аei- индекс непосредственно после последнего символа диапазона.
.tag_remove(tagName, index1, index2=None)
Удаляет тег с именем
tagNameсо всех символов междуindex1иindex2. Еслиindex2опущен, то тег удаляется с единственного символа послеindex1.
.tag_unbind(tagName, sequence, funcid=None)
Удаляет привязку события для заданной
sequenceиз тега с именемtagName. Если существует несколько обработчиков для данной последовательности и тега, вы можете удалить только один обработчик, передав его в качестве третьего аргумента.
.window_cget(index, option)
Возвращает значение заданной опции для встроенного виджета по указанному
index.
.window_configure(index, option)
Чтобы изменить значение опций для встроенного виджета в заданном
index, передайте одну или несколько парoption=value.
Если вы передадите только один аргумент, то получите словарь, определяющий все опции и их значения, действующие в данный момент для данного виджета.
.window_create(index, option, ...)
Этот метод создает окно, в котором виджет может быть встроен в текстовый виджет. Существует два способа предоставления встроенного виджета:
- Вы можете передать виджет в опцию
windowв этом методе, или
- Можно определить процедуру, которая будет создавать виджет, и передать ее в качестве обратного вызова опции
create.
Опциями для
.window_create()являются:
alignОпределяет, как расположить встроенный виджет по вертикали в строке, если он не такой высокий, как текст в строке. Значения включают: align=tk.CENTER(по умолчанию), который центрирует виджет по вертикали в строке;align=tk.TOP, который размещает верх изображения в верхней части строки;align=tk.BOTTOM, который размещает низ изображения в нижней части строки; иalign=tk.BASELINE, который выравнивает низ изображения по базовой линии текста.createПроцедура, создающая встроенный виджет по требованию. Эта процедура не принимает аргументов, должна создавать виджет как дочерний виджет текстового виджета и возвращать виджет в качестве результата. padxДополнительное пространство, добавляемое слева и справа от виджета в пределах текстовой строки. По умолчанию 0.padyДополнительное пространство, добавляемое над и под виджетом в текстовой строке. По умолчанию 0.stretchЭта опция управляет тем, что происходит, когда строка выше, чем встроенный виджет. Обычно эта опция имеет значение 0, что означает, что встроенный виджет будет иметь естественный размер. Если вы установитеstretch=1, виджет будет растянут по вертикали, чтобы заполнить высоту строки, а опцияalignбудет проигнорирована.windowВиджет для вставки. Этот виджет должен быть дочерним по отношению к виджету текста.
.window_names()
Возвращает последовательность, содержащую имена всех встраиваемых виджетов.
.xview(tk.MOVETO, fraction)
Этот метод прокручивает текстовый виджет по горизонтали и предназначен для привязки к опции команды связанной горизонтальной полосы прокрутки.
Этот метод может быть вызван двумя разными способами. Первый вызов позиционирует текст на значение, заданное
fraction, где 0.0 перемещает текст в крайнее левое положение, а 1.0 - в крайнее правое.
.xview(tk.SCROLL, n, what)
Второй вызов перемещает текст влево или вправо: аргумент
whatуказывает, на сколько перемещать, и может быть либоtk.UNITS, либоtk.PAGES, аnуказывает, на сколько символов или страниц перемещать текст вправо относительно его отображения (или влево, если отрицательно).
.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,...). При вертикальной прокрутке поtk.UNITSединицами измерения являются строки.
.yview_moveto(fraction)
Эквивалент вертикальной прокрутки
.xview_moveto().
.yview_scroll(n, what)
Эквивалент вертикальной прокрутки функции
.xview_scroll().