=====Text===== Текстовые виджеты предоставляют расширенные возможности, которые позволяют редактировать многострочный текст и форматировать способ его отображения, например изменять его цвет и шрифт. Вы также можете использовать элегантные структуры, такие как вкладки и метки, чтобы найти определенные разделы текста и применить изменения к этим областям. Кроме того, вы можете вставлять окна и изображения в текст, потому что этот виджет был разработан для обработки как простого, так и отформатированного текста. ====Синтаксис==== Вот простой синтаксис для создания этого виджета - w = Text ( master, option, ... ) ====Параметры==== * **master** - Это представляет родительское окно. * **options** − Вот список наиболее часто используемых параметров для этого виджета. Эти параметры можно использовать как пары ключ-значение, разделенные запятыми. ^Sr.No.^Опции и Описание| |1|**bg** \\ Цвет фона по умолчанию для текстового виджета.| |2|**bd** \\ Ширина границы вокруг текстового виджета. По умолчанию 2 пикселя.| |3|**cursor** \\ Курсор, который появится, когда мышь находится над текстовым виджетом.| |4|**exportselection** \\ Обычно текст, выделенный в текстовом виджете, экспортируется для выделения в диспетчере окон. Установить exportselection = 0 если вы не хотите такого поведения.| |5|**font** \\ Шрифт по умолчанию для текста, вставляемого в виджет.| |6|**fg** \\ Цвет, используемый для текста (и растровых изображений) в виджете. Вы можете изменить цвет для помеченных регионов; эта опция только по умолчанию.| |7|**height** \\ Высота виджета в строках (не в пикселях!), Измеряется в соответствии с текущим размером шрифта.| |8|**highlightbackground** \\ Цвет фокуса выделяется, когда текстовый виджет не имеет фокуса.| |9|**highlightcolor** \\ Цвет фокуса выделяется, когда текстовый виджет имеет фокус.| |10|**highlightthickness** \\ Толщина фокуса подсветки. По умолчанию 1. Усановить highlightthickness = 0 чтобы подавить отображение выделения фокуса.| |11|**insertbackground** \\ Цвет курсора вставки. По умолчанию черный.| |12|**insertborderwidth** \\ Размер трехмерной границы вокруг курсора вставки. По умолчанию 0.| |13|**insertofftime** \\ Количество миллисекунд, в течение которых курсор вставки выключен во время цикла мигания. Установите эту опцию на ноль, чтобы подавить мигание. По умолчанию 300.| |14|**insertontime** \\ Количество миллисекунд, в течение которых курсор вставки включен во время цикла мигания. По умолчанию 600.| |15|**insertwidth** \\ Ширина курсора вставки (его высота определяется самым высоким элементом в его строке). По умолчанию 2 пикселя.| |16|**padx** \\ Размер внутреннего отступа добавляется слева и справа от текстовой области. По умолчанию используется один пиксель.| |17|**pady** \\ Размер внутреннего отступа добавлен над и под текстовой областью. По умолчанию используется один пиксель.| |18|**relief** \\ 3-D вид текстового виджета. По умолчанию relief = SUNKEN.| |19|**selectbackground** \\ Цвет фона для отображения выбранного текста.| |20|**selectborderwidth** \\ Ширина границы, используемой вокруг выделенного текста.| |21|**spacing1** \\ Этот параметр указывает, сколько дополнительного вертикального пространства помещается над каждой строкой текста. Если строка переносится, это пространство добавляется только перед первой строкой, которую она занимает на дисплее. По умолчанию 0.| |22|**spacing2** \\ Этот параметр указывает, сколько дополнительного вертикального пространства необходимо добавить между отображаемыми строками текста при переносе логической строки. По умолчанию 0.| |23|**spacing3** \\ Этот параметр указывает, сколько дополнительного вертикального пространства добавляется ниже каждой строки текста. Если строка переносится, это пространство добавляется только после последней строки, которую оно занимает на дисплее. По умолчанию 0.| |24|**state** \\ Обычно текстовые виджеты реагируют на события клавиатуры и мыши; установить state = NORMAL чтобы получить такое поведение. Если вы установите state = DISABLED, текстовый виджет не будет отвечать, и вы не сможете изменять его содержимое программным путем.| |25|**tabs** \\ Эта опция контролирует, как символы табуляции позиционируют текст.| |26|**width** \\ Ширина виджета в символах (не в пикселях!), Измеряется в соответствии с текущим размером шрифта.| |27|**wrap** \\ Эта опция управляет переносом слов. Установить wrap = WORD и слова будут переноситься на следующую строку. Поведение по умолчанию, wrap = CHAR, любая строка, которая становится слишком длинной, будет разбита на любом символе| |28|**xscrollcommand** \\ Чтобы сделать текстовый виджет горизонтально прокручиваемым, установите этот параметр для метода set () горизонтальной полосы прокрутки.| |29|**yscrollcommand** \\ Чтобы сделать текстовый виджет вертикально прокручиваемым, установите для этого параметра метод set () вертикальной полосы прокрутки.| ==== Методы ==== Текстовые объекты имеют эти методы - ^Sr.No.^Методы и Описание| |1|**delete(startindex [,endindex])** \\ Этот метод удаляет определенный символ или диапазон текста. | |2|**get(startindex [,endindex])** \\ Этот метод возвращает определенный символ или диапазон текста. | |3|**index(index)** \\ Возвращает абсолютное значение индекса на основе данного индекса. | |4|**insert(index [,string]...)** \\ Этот метод вставляет строки в указанное местоположение индекса. | |5|**see(index)** \\ Этот метод возвращает true, если текст, расположенный в позиции индекса, виден. | Текстовые виджеты поддерживают три различных вспомогательных структуры: метки, вкладки и индексы: Метки используются для закладки позиций между двумя символами в данном тексте. У нас есть следующие методы, доступные для обработки меток: ^Sr.No.^Методы и Описание| |1|**index(mark)** \\ Возвращает расположение строки и столбца определенной метки.| |2|**mark_gravity(mark [,gravity])** \\ Возвращает серьезность данной отметки. Если указан второй аргумент, для данной отметки устанавливается сила тяжести.| |3|**mark_names()** \\ Возвращает все метки из виджета Текст.| |4|**mark_set(mark, index)** \\ Информирует новую позицию по данной отметке.| |5|**mark_unset(mark)** \\ Удаляет данную отметку из виджета «Текст».| Теги используются для привязки имен к областям текста, что облегчает задачу изменения настроек отображения определенных текстовых областей. Теги также используются для привязки обратных вызовов событий к определенным диапазонам текста. Ниже приведены доступные методы для обработки вкладок. ^Sr.No.^Методы и Описание| |1|**tag_add(tagname, startindex[,endindex] …)** \\ Этот метод помечает либо позицию, определенную startindex, либо диапазон, ограниченный позициями startindex и endindex.| |2|**tag_config** \\ Этот метод можно использовать для настройки свойств тега, которые включают, выравнивание (по центру, влево или вправо), вкладки (это свойство имеет те же функции, что и свойства вкладок виджета «Текст») и подчеркивание (используется для подчеркивания тегового текста)| |3|**tag_delete(tagname)** \\ Этот метод используется для удаления и удаления данного тега.| |4|**tag_remove(tagname [,startindex[.endindex]] …)** \\ После применения этого метода данный тег удаляется из предоставленной области без удаления фактического определения тега.| ====Примеры==== ==insert text== from tkinter import * root = Tk() text = Text(root) text.insert(INSERT, "Hello.....") text.insert(END, "Bye Bye.....") text.pack() text.tag_add("here", "1.0", "1.4") text.tag_add("start", "1.8", "1.13") text.tag_config("here", background = "yellow", foreground = "blue") text.tag_config("start", background = "black", foreground = "green") root.mainloop() {{ :python:оконное_приложение:tkinter:text2.jpg?300 |}} ==Бокнот== from tkinter import * def addStr(): t.insert(END, 'hello\n') def delStr(): t.delete('1.0', END) def getStr(): print(t.get('1.0', END)) root = Tk() root.geometry('400x400') #Создаем фрейм для меню f_menu = Frame(root, bg='#1F252A', height=40) f_menu.pack(fill=X) #Создаем фрейм для текстового ввода f_text = Frame(root) f_text.pack(fill=BOTH, expand=1) #заголовок меню l_menu = Label(f_menu, text="Menu", bg="#2B3239", fg="#c6dec1", font="Arial 10") l_menu.place(x=10, y=10) #Добавить строку btt_add = Button(root, text='add', command=addStr).place(x=50, y=10) #Очистить редактор btt_del = Button(root, text='delete', command=delStr).place(x=90, y=10) #Получить данные из редактроа btt_get = Button(root, text='get', command=getStr).place(x=140, y=10) #Поле ввода t = Text(f_text, bg="#343D46", fg="#c6dec1", padx=10, #отступ по оси x pady=10, #отступ по оси y wrap=WORD, #Перенос слов insertbackground="#EDA756",#цвет курсора selectbackground="#4E5A65", #цвет выделения spacing3=10, #Расстояние между строк width=30) t.pack(fill=BOTH, expand=1, side=LEFT) #Создаем скроллбар scroll = Scrollbar(f_text, command=t.yview)#Создаем скролл по оси y scroll.pack(fill=Y, side=LEFT) t.config(yscrollcommand=scroll.set) root.mainloop() {{ :python:оконное_приложение:tkinter:text1.png?300 |}}