Resumo : neste tutorial, você aprenderá como usar o widget Tkinter Text para adicionar um editor de texto à sua aplicação.
Introdução ao widget Tkinter Text
O Text
widget permite exibir e editar áreas de texto multilinhas com vários estilos. Além do texto simples, o Text
widget suporta imagens e links incorporados.
Para criar um widget de texto, use a seguinte sintaxe:
text = tk.Text(master, conf={}, **kw)
Nesta sintaxe:
- O
master
é o componente pai doText
widget. - O
cnf
é um dicionário que especifica a configuração do widget. - É
kw
um ou mais argumentos de palavra-chave usados para configurar oText
widget.
Observe que o Text
widget está disponível apenas no módulo Tkinter, não no Tkinter.ttk
módulo.
O exemplo a seguir cria um Text
widget com oito linhas e o coloca na janela raiz:
from tkinter import Tk, Text
root = Tk()
root.resizable(False, False)
root.title("Text Widget Example")
text = Text(root, height=8)
text.pack()
root.mainloop()
Linguagem de código: JavaScript ( javascript )
Saída:
Neste exemplo, o height
argumento especifica o número de linhas do Text
widget.
Inserindo conteúdo inicial
Para inserir conteúdo na área de texto, você usa o insert()
método. Por exemplo:
from tkinter import Tk, Text
root = Tk()
root.resizable(False, False)
root.title("Text Widget Example")
text = Text(root, height=8)
text.pack()
text.insert('1.0', 'This is a Text widget demo')
root.mainloop()
Linguagem de código: JavaScript ( javascript )
Saída:
O primeiro argumento do insert()
método é a posição onde deseja inserir o texto.
A posição tem o seguinte formato:
'line.column'
Linguagem de código: JavaScript ( javascript )
No exemplo acima, '1.0'
significa linha 1, caractere 0, que é o primeiro caractere da primeira linha na área de texto.
Recuperando o valor do texto
Para recuperar o conteúdo de um Text
widget, você usa seu get()
método. Por exemplo:
text_content = text.get('1.0','end')
Linguagem de código: JavaScript ( javascript )
O get()
método aceita dois argumentos. O primeiro argumento é a posição inicial e o segundo é a posição final.
Para recuperar apenas parte do texto, você pode especificar diferentes posições inicial e final.
Desativando o widget Texto
Para evitar que os usuários alterem o conteúdo de um Text
widget, você pode desativá-lo definindo a state
opção 'disabled'
como esta:
text['state'] = 'disabled'
Linguagem de código: JavaScript ( javascript )
Para reativar a edição, você pode alterar a state
opção novamente para normal
:
text['state'] = 'normal'
Linguagem de código: JavaScript ( javascript )
Resumo
- Use o widget Tkinter
Text
para criar uma área de texto com várias linhas.