Text
fr = Text(parent, opcao=valor, ...)
O componente Text permite mostrar texto formatado, em múltiplas linhas, com imagens. Pode também ser usado como editor de texto.
Atributos
Opção | Descrição |
---|---|
autoseparators | Caso a opção undo esteja definida, esta opção controla se os separadores são adicionado à pilha de desfazer, após cada inserção ou eliminação (autoseparators=True) ou não, (autoseparators=False). |
bd ou borderwidth | Espessura da borda à volta do componente. |
bg ou background | Cor de fundo do componente. |
cursor | Cursor mostrado quando o rato está sobre o componente. |
exportselection | Por defeito, o texto selecionado é exportado como seleção do gestoir de janelas. Definir exportselection=False caso não se pretenda este comportamento. |
font | Fonte da caixa do texto inserido no componente. Para usar várias fontes, pode-se usar tags para partes do texto. |
fg or foreground | Cor do texto do componente. Para usar várias cores, pode-se usar tags para partes do texto. |
height | Altura do componente em numero de linhas, de acordo com a fonte |
highlightbackground | Cor do foco quando a text nao tem o foco. |
highlightcolor | Cor do foco quando a text tem o foco. |
highlightthickness | Espessura do foco. Valor de defeito 1. Definir como 0 para suprimir a espessura do foco. |
insertbackground | Seleciona a cor do cursor de inserção na caixa de texto. Valor de defeito é preto. |
insertborderwidth | Espessura da borda 3D à volta do cursor de inserção. Valor de defeito é 0. |
insertofftime, insertontime | Controla o tempo de piscagem do cursor de inserção, em milisegundos. |
insertwidth | Espessura do cursor de inserção. Valor de defeito é 2. |
maxundo | Número máximo de operações retidas na pilha de undo. Se valor igual -1 o número de operações será ilimitado. |
padx | Espaçamento interno à esquerda e à direita. |
pady | Espaçamento interno no topo e no fundo. |
relief | Tipo de relevo do text. Valor de defeito: tk.SUNKEN. |
selectbackground, selectforeground, selectborderwidth | Cor de fundo, cor de primeiro plano e espessura da borda do texto selecionado. |
spacing1 | Define a quantidade de espaço extra acima das linhas. Valor de defeito é 0. |
spacing2 | Define a quantidade de espaço extra acima das linhas quando uma linha quebra. Valor de defeito é 0. |
spacing3 | Define a quantidade de espaço extra abaixo das linhas. Valor de defeito é 0. |
state | Valores: tk.NORMAL (valor de defeito); tk.DISABLED: o componente deixa de responder n ao permitindo mnodificar o seu conteúdo, nem sequer programáticamente. |
tabs | Valor do posicionamento da tecla tab. |
takefocus | Se takefocus=0 o componente não receberá o foco. |
undo | Se True habilita o mecanismo de undo; se False não o permite. |
width | Largura do componente em número de carateres, de acordo com a fonte. |
wrap | Controla a visualização das linhas que são demasiadamente grandes:wrap=tk.CHAR a linha quebra em qualquer caratere. É o valor de defeito.wrap=tk.WORD a linha quebra após a última palavra que ainda cabe.wrap=tk.NONE a linha não quebra. |
xscrollcommand | Faz o texto rolável horizontalmente. Definir esta opção no método .set da scrollbar horizontal. |
yscrollcommand | Faz o texto rolável verticalmente. Definir esta opção no método .set da scrollbar vertical. |
Métodos
.bbox(index) : Retorna um tuplo com a caixa delimitadora do caratere com a posição index ou None se o caratere não fôr visível.. O tuplo tem o formato (x, y, w, h) em que x, y são as coordenadas do canto superior esquerdo, w é a largura e h é a altura.
index: Posição do caratere.
.compare(index1, op, index2) : Compara as posição index1 e index2 usando a operação de comparação op. A operação op pode ser uma das seguintes: ‘<‘, ‘<=’, ‘==’, ‘!=’, ‘>=’, ou ‘>’.
index1: Primeira posição.
op: Operador.
index2: Segunda posição.
.delete(start, end=None) : Apaga o caratere na posição start (se end fôr omitido) ou todo o texto entre start e end.
start: Posição de início.
end: Opcional. posição de fim.
.dlineinfo(index) : Retorna a caixa delimitadora da linha que contém o caratere na posição index. A caixa delimitadora é retornada na forma de um tuplo com o formato (x, y, w, h, o), ou None se a linha não fôr visível, em que x, y são as coordenadas do canto superior esquerdo, w é a largura, h é a altura e o é o deslocamento do topo da linha para a baseline.
index: Posição do caratere.
.edit_modified(arg=None) : consulta, define ou limpa a flag de modificação de edição. Esta flag é usada para controlar se o conteúdo do componente Text foi modificado desde a última salvaguarda em ficheiro.
arg: Opcional. Se omitido, serve para questionar se houve modificação do conteúdo. Neste caso retorna True se hoiuve ou False se não houve. Se este argumento fôr igual a True põe a flag a True; se fôr igual a False limpa a flag de modificação
.edit_redo() : Executa uma operação de Redo (Refazer).
.edit_reset() : Limpa a pilha de undo.
.edit_separator() : Coloca um separador na pilha de undo. Numa futura operação undo só as alterações desde o último separador posto na pilha, serão puxados.
.edit_undo() : Reverte todas as alterações feitas no conteúdo do componente Text desde o último separador ou desde o início da pilha se não tiver separadores.
.get(start, end=None) : Retorna todo o texto entre as posições start e end ou o caratere na posição start se end fôr omitido.
start: Posição de início.
end: Opcional. Posição de fim.
.image_cget(index, option) : Retorna o valor da opção option de uma imagem embebida na posição index.
index: Posição da imagem.
option: Opção da imagem.
.image_configure(index, **options) : Modifica uma ou mais opções de uma imagem embebida na posição index. Cada opção é fornecida no formato opcao=valor. Se não definir nenhuma opção, recebe um dicionário com todas as opções da imagem e respectivos valores.
index: Posição da imagem.
**options: Opções da imagem.
.image_create(index, **options) : Insere uma imagem na posição index. Deve ser uma imagem do tipo PhotoImage ou BitmapImage. As opções poder passadas numa série de pares opcao=valor ou usando um dicionário com as opções pretendidas. As opções são uma ou mais das seguintes:
- align: alinhamento vertical. Pode ser top, center, bottom ou baseline.
- image: a imagem (instância de PhotoImage ou BitmapImage).
- name: nome da instância da imagem. Se omitido o Tkinter gerará um nome.
- padx, pady: nr de pixeis extra a serem adicionados à esquerda e à direita e/ou em cima e em baixo.
index: Posição da imagem.
**options: Opções da imagem.
.image_names() : Retorna um tuplo com todos os nomes de todas as imagens embebidas no componente Text.
.index(index) : Para a posição index, retorna uma string com a posição no formato “linha.coluna”.
index: Especificação da posição.
.insert(index, text, *tags) : Insere o texto text na posição index. O argumento *tags deve ser fornecido na forma de um tuplo com as tags pretendidas. Se omitir *tags, o texto inserido será marcado com as tags que se aplicam aos pontos antes e depois do ponto de inserção.
index: Posição de inserção do texto.
text: Texto a inserir.
*tags: Opcional. Tags a anexar ao texto.
.mark_gravity(mark, gravity=None) : Define o alinhamento horizontal para uma marca. Se o argumento gravity fôr omitido, retorna o alinhamento horizontal para a marca especificada.
mark: nome da marca.
gravity: Opcional. Alinhamento horizontal. Pode ser tk.LEFT ou tk.RIGHT
.mark_names() : Retorna um tuplo com os nomes de todas as marcas definidas na janela.
.mark_next(index) : Retorna uma string com o nome da marca a seguir à posição index. Se não houver nenhuma marca após index, retorna uma string vazia. Se index fôr uma marca retorna a marca a seguir.
index: Posição ou nome de marca.
.mark_previous(index) : Retorna uma string com o nome da marca que precede a posição index. Se não houver nenhuma marca antes de index, retorna uma string vazia. Se index fôr uma marca retorna a marca antes dessa.
index: Posição ou nome de marca.
.mark_set(mark, index) : Move a marca mark para a posição index. Se a marca não existir, cria-a nessa posição com o alinhamento tk.RIGHT.
mark: Nome da marca.
index: Posição.
.mark_unset(mark) : Remove a marca mark do componente.
mark: Nome da marca.
.scan_dragto(x, y) : Rola o conteúdo do componente relativamente à âncora de scanning. O texto é movido 10 vezes a distância entre a âncora e a posição dada.
x: Coordenada horizontal.
y: Coordenada vertical.
.scan_mark(x, y) : Especifica a âncora de scanning. Estabelece uma âncora que permite um rolamento rápido para as coordenadas do rato.
x: Coordenada horizontal.
y: Coordenada vertical.
.search(pattern, index, option, …) : Faz uma pesquisa por pattern (pattern pode ser uma string ou expressão regular) no texto, a começar na posição index, e retorna uma string com a posição na forma “linha.caratere”, se a pesquisa fôr bem sucedida; se não fôr retorna uma string vazia.
pattern: String ou expressão regular.
index: Posição de início da busca.
option..: Opções com critérios de pesquisa.As opções podem ser as seguintes:
- backwards: se igual a True, faz uma pesquisa para trás, a partir da posição index.
- count: obtém o tamanho do texto encontrado, se definirmos nesta opção uma variável IntVar na qual podemos obter esse tamanho.
- exact: faz uma comparação exata com pattern.
- forwards: se igual a True, faz uma pesquisa para a frente, a partir da posição index.
- regexp: se igual a True, interpreta pattern como uma expressão reegular .
- nocase: se igual a 1, não faz distinção entre maiúscula e minúsculas. Por defeito, faz essa distinção.
- stopindex: posição a partir da qual a busca pára.
.see(index) : Se o texto na posição index não fôr visível, rola o texto até ser visível.
index: Especificação da posição.
.tag_add(tag_name, index1, index2=None) : Associa a tag tag_name com uma região do texto a começar após a posição index1 e a terminar na posição index2. Se index2 fôr omitido, associa a tag ao caratere na posição index1.
tagname: Nome da tag.
index1: Especificação da posição de início.
index2: Especificação da posição de fim.
.tag_bind(tag_name, event=None, callback, add=None) : Liga um evento ao texto associado à tag tagname. Para criar uma nova ligação ao texto etiquetado, especificar o evento no argumento ebent e a função chamada quando o evento acontece no argumento callback. Para adicionar uma nova ligação a a uma tag existente, definir “+” no argumento add.
tag_name: Nome da tag.
event: Evento.
callback: Função de callback associada ao evento evento.
add: Se igual a ‘+’ adiciona esta ligação de evento às existentes, caso contrário substitui a ligação para o evento evento.
.tag_cget(tag_name, option) : Retorna o valor da opção option da tag tag_name.
tag_name: Nome da tag.
option: Nome da opção.
.tag_config(tag_name, option,..) : Altera os valores das opções option,.. passando os valores em pares opção=valor. Se passar sómente o argumento tag_name retorna um dicionário com todas as opções definidas e respectivos valores.
tag_name: Nome da tag.
option,..: Pares opção=valor.
As opções são as seguintes:
- background: cor de fundo para o texto desta tag.
- bgstipple: faz a cor de fundo aparecer acinzentada.
- borderwidth: espessura da borda do texto desta tag. Valor de defeito é 0.
- fgstipple:
- font: fonte do texto desta tag.
- foreground: cor do texto dests tag.
- justify: justificação tk.LEFT (valor de defeito), tk.CENTER, ou tk.RIGHT.
- lmargin1: indentação da primeira linha de texto desta tag.
- lmargin2: indentação das linhas de texto subsequentes desta tag.
- offset: por quanto elevar (valores positivos) ou baixar (valores negativos) o texto desta tag em relação à baseline.
- overstrike: igual a 1 desenha uma linha horizontal a meio do texto.
- relief: efeito 3D do texto desta tag. Valor de defeito é th.FLAT.
- rmargin: tamanho da margem direita.
- spacing1: quanto espaço extra vertical acima de cada linha de texto desta tag.
- spacing2: quanto espaço extra vertical entre as linhas de texto desta tag.
- spacing3: quanto espaço extra vertical abaixo de cada linha de texto desta tag.
- tabs: tabulamentos das linhas de texto desta tag.
- underline: igual a 1 , sublinha o texto.
- wrap: como as linhas extensas são quebradas.
.tag_delete(tag_name, …) : Elimina a(s) tag(s) com os nomes passados nos argumentos.
tag_name,…: Nomes da tags.
.tag_lower(tag_name, belowThisTag_Name) : Move a tag especificada por tag_name, na pilha de tags, para debaixo da tag especificada por belowThisTag_Name. Se passar sómente o argumento tag_name para a tag para o fundo da pilha.
tag_name: Nome da tag a mover.
belowThisTag_Name: Tag para debaixo da qual a tag será movida.
.tag_names(index=None) : Retorna uma sequência com os nomes de todas as tags associadas com a posição index. Se omitir index, retorna os nomes de todas as tags no componente.
index: Posição.
.tag_nextrange(tag_name, index1, index2=None) : Este método pesquisa uma região do texto à procura de posições onde tag tag_name inicie. A pesquisa começa na posição index1 e termina na posição index2. Se index2 fôr omitido, a busca vai de index1 até ao final do texto. Se uma região fôr encontrada retorna uma sequência [i0, i1] onde i0 é o primeiro caratere da tag e i1 o último. Se nemhuma região fôr encontrada retorna uma string vazia.
tag_name: Nome da tag.
index1: Posição de inicio.
index2: Posição de fim.
.tag_prevrange(tag_name, index1, index2=None) : Este método pesquisa uma região do texto à procura de posições onde tag tag_name inicie. A pesquisa começa antes da posição index1 e termina na posição index2. Se index2 fôr omitido, a busca vai de index1 até ao final do texto. Se uma região fôr encontrada retorna uma sequência [i0, i1] onde i0 é o primeiro caratere da tag e i1 o último. Se nemhuma região fôr encontrada retorna uma string vazia.
tag_name: Nome da tag.
index1: Posição de inicio.
index2: Posição de fim.
.tag_raise(tag_name, aboveThisTag_Name) : Move a tag especificada por tag_name, na pilha de tags, para cima da tag especificada por aboveThisTag_Name. Se passar sómente o argumento tag_name para a tag para o topo da pilha.
tag_name: Nome da tag a mover.
aboveThisTag_Name: Tag para cima da qual a tag será movida.
.tag_ranges(tag_name) : Retorna todos os intervalos de texto associados com a trag tag_name, na forma de uma sequência [i0, f0, i1, f1,…] em que i0 é a posição antes do primeiro caratere do intervalo e f0 é a posição depois do último caratere do intervalo.
tag_name: Nome da tag a mover.
aboveThisTag_Name: Tag para cima da qual a tag será movida.
.tag_remove(tag_name, index1, index2=None) : Remove a tag tag_name de todos os carateres entre as posição index1 e index2. Se index2 fôr omitido remove a tag do caratere na posição index1.
tag_name: Nome da tag a remover.
index1: Posição de inicio.
index2: Posição de fim.
.tag_unbind(tag_name, event, callback) : Remove a ligação de evento, se existir, para o evento event aplicada à tag tag_name .
tag_name: Nome da tag.
item: Evento.
event: Função de callback que trata o evento event.
.window_cget(index, option) : Retorna o valor da opção option do componente na posição index.
index: Posição do componente.
option: Nome da opção.
.window_configure(index, options) : Altera os valores das opções para o componente na posição index. Para alterar os valores deve passar uma ou mais opções no formato opcao=valor. Se passar sómente o argumento index, retorna um dicionário com todas as opções e respectivos valores para o componente na posição index.
index: Posição do componente.
options: Pares opcao=valor.
.window_create(index, options) : Insere um componente na posição index. Existem duas maneiras de inserir o componente:
- Pode-se passar o componente para a opção window.
- Pode-se definir uma função de callback que criará o componente e passar a função na opção create.
index: Posição do componente.
options: Pares opcao=valor.
As opções são as seguintes:
- align: como posicionar o componente verticalmente na linha se não fôr tão alto como o texto da mesma. Valores podem ser: align=tk.CENTER (valor de defeito), align=tk.TOP, align=tk.BOTTOM, align=tk.TOP, align=tk.BASELINE
- create: pode receber uma função de callback que cria o componente. Retorna o componente criado.
- padx: espaço extra nos lados esquerdo e direito do componente. Valor de defeito é 0.
- pady: espaço extra nos lados acima e abaixo do componente. Valor de defeito é 0.
- stretch: controla o que acontece ao componente quando a altura da linha é maior que o componente. Porr defeito o valor é 0 o que significa que o componente é deixado no seu tamanho natural; se fôr igual a 1 o componente é esticado verticalmente de forma a preencher a altura da linha.
- window: o componente a inserir. Deve ser filho do componente Text.
.window_names() : Retorna um tuplo com os nomes de todos os componentes embebidos no componente Text.
.xview(tk.MOVETO, fraction) : Este método rola o texto horizontalmente e pode ser ligado à opção command de uma barra de rolagem (scrollbar) horizontal . Podemos passar um valor entre 0.0 e 1.0 para o argumento fraction sendo que 0.0 corresponde ao lado mais à esquerda e 1.0 ao lado mais à direita.
fraction: valor do deslocamento horizontal.
.xview(tk.SCROLL, n, what) : Este método move o texto para a direita ou para a esquerda. O argumento what define por quanto o texto é movido e pode ser tk.UNITS ou tk.PAGES. O argumento n define por quantos carateres ou páginas mover o texto; se fôr um valor positivo move para a direita; se fôr negativo move para a esquerda.
n: quantidade de carateres ou páginas a mover.
what: tk.UNITS ou tk.PAGES.
.xview_moveto(fraction) : O mesmo que .xview(tk.MOVETO, fraction).
.xview_scroll(n, what) : O mesmo que .xview(tk.SCROLL, n, what).
.yview(tk.MOVETO, fraction) : Este método é equivalente a .xview(tk.MOVETO, fraction) só que em termos verticais.
.yview(tk.SCROLL, n, what) : Este método é equivalente a .xview(tk.SCROLL, n, what) só que em termos verticais.
.yview_moveto(fraction) : Este método é equivalente a .xview_moveto(fraction) só que em termos verticais.
.yview_scroll(n, what) : Este método é equivalente a .xview_scroll(n, what) só que em termos verticais.
Exemplo 1:
Inserção de texto com definição de tags:
from tkinter import * window = Tk() window.title("Tkinter - Text") window.geometry("300x200")#criação de um componente Text:
text = Text() text.config(font=('courier', 15, 'normal'))#confuração do componente:
text.config(width=20, height=12) text.pack(expand=YES, fill=BOTH)#inserção de texto:
text.insert(END, 'Linha1\n\nLinha2\n\nLinha 3.\n\n') text.tag_add("tag1", "1.0", "1.4") text.tag_add("tag2", "3.1", "3.5") text.tag_config("tag1", background="yellow", foreground="blue") text.tag_config("tag2", background="#00CED1", foreground="green") window.mainloop()
Saída:

Exemplo 2:
Text com scrollbar vertical:
from tkinter import *
window = Tk()
window.title("Tkinter - Text")
window.geometry("300x200")
#criação de um componente Text:
text = Text()
#confuração do componente:
text.config(font=('courier', 15, 'normal'))
text.config(width=20, height=12)
text.pack(expand=YES, fill=BOTH)
#inserção de texto:
text.insert(END, 'Linha1\n\nLinha2\n\nLinha 3.\n\nLinha4\n\nLinha5\n\nLinha 6.\n\n')
#Definição de 2 tags em duas regiões do texto:
#linha 1, caratere 0 a linha 1, caratere 4:
text.tag_add("tag1", "1.0", "1.4")
#linha 3, caratere 1 a linha 3, caratere 5:
text.tag_add("tag2", "3.1", "3.5")
#configuração das 2 tags:
text.tag_config("tag1", background="yellow", foreground="blue")
text.tag_config("tag2", background="#00CED1", foreground="green")
#Scrollbar vertical :
scrollbar=Scrollbar(text)
scrollbar.pack(side=RIGHT,fill=Y)
text.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=text.yview)
window.mainloop()
Saída:

Exemplo 3:
Texto e imagem
from tkinter import *
window = Tk()
window.title("Tkinter - Text")
window.geometry("300x230")
#criação de um componente Text:
text = Text(window)
#carregamento da imagem:
photo=PhotoImage(file='dog1.png')
text.insert(END,'\n')
#inserção da imagem no componente:
text.image_create(END, image=photo)
#inserção de texto:
text.insert(END, '\n\n\nWe all have some kind or dog in us\n\n')
text.insert(END, '\nLet\'s try and find yours.\n\n')
text.pack()
window.mainloop()
Saída:
