Python - Texto Tkinter
Os widgets de texto fornecem recursos avançados que permitem editar um texto de várias linhas e formatar da maneira como deve ser exibido, como alterar sua cor e fonte.
Você também pode usar estruturas elegantes como guias e marcas para localizar seções específicas do texto e aplicar alterações a essas áreas. Além disso, você pode incorporar janelas e imagens no texto porque este widget foi projetado para lidar com texto simples e formatado.
Sintaxe
Aqui está a sintaxe simples para criar este widget -
w = Text ( master, option, ... )
Parâmetros
master - Isso representa a janela pai.
options- Aqui está a lista das opções mais comumente usadas para este widget. Essas opções podem ser usadas como pares de valores-chave separados por vírgulas.
Sr. Não. | Opção e descrição |
---|---|
1 | bg A cor de fundo padrão do widget de texto. |
2 | bd A largura da borda ao redor do widget de texto. O padrão é 2 pixels. |
3 | cursor O cursor que aparecerá quando o mouse estiver sobre o widget de texto. |
4 | exportselection Normalmente, o texto selecionado em um widget de texto é exportado para ser a seleção no gerenciador de janelas. Definaportselection = 0 se você não quiser esse comportamento. |
5 | font A fonte padrão para o texto inserido no widget. |
6 | fg A cor usada para o texto (e bitmaps) no widget. Você pode alterar a cor das regiões marcadas; esta opção é apenas o padrão. |
7 | height A altura do widget em linhas (não pixels!), Medida de acordo com o tamanho da fonte atual. |
8 | highlightbackground A cor do foco é realçada quando o widget de texto não tem foco. |
9 | highlightcolor A cor do destaque do foco quando o widget de texto tem o foco. |
10 | highlightthickness A espessura do destaque do foco. O padrão é 1. Defina a espessura do realce = 0 para suprimir a exibição do realce do foco. |
11 | insertbackground A cor do cursor de inserção. O padrão é preto. |
12 | insertborderwidth Tamanho da borda 3-D ao redor do cursor de inserção. O padrão é 0. |
13 | insertofftime O número de milissegundos em que o cursor de inserção está desligado durante seu ciclo de intermitência. Defina esta opção como zero para suprimir o piscar. O padrão é 300. |
14 | insertontime O número de milissegundos em que o cursor de inserção fica durante seu ciclo de intermitência. O padrão é 600. |
15 | insertwidth Largura do cursor de inserção (sua altura é determinada pelo item mais alto em sua linha). O padrão é 2 pixels. |
16 | padx O tamanho do preenchimento interno adicionado à esquerda e à direita da área de texto. O padrão é um pixel. |
17 | pady O tamanho do preenchimento interno adicionado acima e abaixo da área de texto. O padrão é um pixel. |
18 | relief A aparência 3D do widget de texto. O padrão é relevo = SUNKEN. |
19 | selectbackground A cor de fundo a ser usada para exibir o texto selecionado. |
20 | selectborderwidth A largura da borda a ser usada ao redor do texto selecionado. |
21 | spacing1 Esta opção especifica quanto espaço vertical extra é colocado acima de cada linha de texto. Se uma linha for quebrada, este espaço será adicionado apenas antes da primeira linha que ocupa no visor. O padrão é 0. |
22 | spacing2 Esta opção especifica quanto espaço vertical extra incluir entre as linhas de texto exibidas quando uma linha lógica é quebrada. O padrão é 0. |
23 | spacing3 Esta opção especifica quanto espaço vertical extra é adicionado abaixo de cada linha de texto. Se uma linha for quebrada, este espaço será adicionado somente após a última linha que ocupa no display. O padrão é 0. |
24 | state Normalmente, os widgets de texto respondem a eventos de teclado e mouse; defina state = NORMAL para obter este comportamento. Se você definir state = DISABLED, o widget de texto não responderá e você também não poderá modificar seu conteúdo programaticamente. |
25 | tabs Esta opção controla como os caracteres de tabulação posicionam o texto. |
26 | width A largura do widget em caracteres (não pixels!), Medida de acordo com o tamanho da fonte atual. |
27 | wrap Esta opção controla a exibição de linhas muito largas. Defina wrap = WORD e isso quebrará a linha após a última palavra que couber. Com o comportamento padrão, wrap = CHAR, qualquer linha que se torne muito longa será interrompida em qualquer caractere. |
28 | xscrollcommand Para tornar o widget de texto rolável horizontalmente, defina esta opção para o método set () da barra de rolagem horizontal. |
29 | yscrollcommand Para tornar o widget de texto rolável verticalmente, defina esta opção para o método set () da barra de rolagem vertical. |
Métodos
Objetos de texto têm estes métodos -
Sr. Não. | Métodos e Descrição |
---|---|
1 | delete(startindex [,endindex]) Este método exclui um caractere específico ou um intervalo de texto. |
2 | get(startindex [,endindex]) Este método retorna um caractere específico ou um intervalo de texto. |
3 | index(index) Retorna o valor absoluto de um índice com base no índice fornecido. |
4 | insert(index [,string]...) Este método insere strings no local do índice especificado. |
5 | see(index) Este método retorna verdadeiro se o texto localizado na posição do índice estiver visível. |
Os widgets de texto suportam três estruturas auxiliares distintas: Marks, Tabs e Indexes -
As marcas são usadas para marcar posições entre dois caracteres em um determinado texto. Temos os seguintes métodos disponíveis para lidar com marcas -
Sr. Não. | Métodos e Descrição |
---|---|
1 | index(mark) Retorna a localização da linha e coluna de uma marca específica. |
2 | mark_gravity(mark [,gravity]) Retorna a gravidade da marca fornecida. Se o segundo argumento for fornecido, a gravidade é definida para a marca dada. |
3 | mark_names() Retorna todas as marcas do widget Texto. |
4 | mark_set(mark, index) Informa uma nova posição para a marca fornecida. |
5 | mark_unset(mark) Remove a marca fornecida do widget de Texto. |
As marcas são usadas para associar nomes a regiões de texto, o que facilita a tarefa de modificar as configurações de exibição de áreas de texto específicas. As tags também são usadas para vincular retornos de chamada de evento a intervalos específicos de texto.
A seguir estão os métodos disponíveis para lidar com guias -
Sr. Não. | Métodos e Descrição |
---|---|
1 | tag_add(tagname, startindex[,endindex] ...) Este método marca a posição definida por startindex ou um intervalo delimitado pelas posições startindex e endindex. |
2 | tag_config Você pode usar este método para configurar as propriedades da tag, que incluem, justificar (centro, esquerda ou direita), guias (esta propriedade tem a mesma funcionalidade da propriedade das guias do widget Texto) e sublinhado (usado para sublinhar o texto marcado) . |
3 | tag_delete(tagname) Este método é usado para deletar e remover uma determinada tag. |
4 | tag_remove(tagname [,startindex[.endindex]] ...) Depois de aplicar este método, a tag fornecida é removida da área fornecida sem excluir a definição da tag real. |
Exemplo
Experimente o seguinte exemplo -
from Tkinter import *
def onclick():
pass
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()
Quando o código acima é executado, ele produz o seguinte resultado -