Uma caixa de texto, campo de texto ou caixa de entrada de texto é uma espécie de ferramenta utilizada na construção de uma interface gráfica de usuário (GUI). A finalidade de um caixa de texto é o de permitir ao utilizador inserir informações de texto de entrada a ser utilizado pelo programa. Diretrizes de interface do usuário recomendam uma caixa com uma única linha de texto quando é necessária apenas uma linha de entrada, e uma caixa de texto de várias linhas somente se for necessária mais de uma linha de entrada. Caixas de texto não editáveis pode servir ao propósito de simplesmente exibir texto.
ScrolledText
O módulo ScrolledText fornece uma classe com o mesmo nome que implementa um widget de texto básico que tem uma barra de rolagem vertical configurado para fazer a “coisa certa“. Usando a classe ScrolledText é muito mais fácil do que a criação de um widget de texto e barra de rolagem diretamente. O construtor usa a mesma classe Tkinter.Text.
Exemplo:
Neste exemplo criamos um programa com uma área de texto onde se pode editar diretamente o texto ou inserir linhas no texto através de uma caixa de texto simples e um botão.
Python
#!/usr/bin/env python # -*- coding: latin-1 -*- # Desenvolvimento Aberto # ScrolledText.py # importa modulo from Tkinter import * from ScrolledText import ScrolledText # Cria formulario formulario = Tk() formulario.title = "Desenvolvimento Aberto" # Evento do Botão def clique(): area.insert(END, texto.get() + "\n") # Declara Variaveis conteudo = "Escreva um texto dentro da caixa de texto. \n" + \ "Voce tambem pode adicionar novas linhas nesta caixa " + \ "escrevendo no editor e clicando no botao\n"; # Declara Componentes rotulo = Label(formulario, text="Insira um texto na caixa de texto:") area = ScrolledText(formulario, height =10, width = 40) texto = Entry(formulario) botao = Button(formulario, text="Ok", command=clique) # Define propriedades para os componentes area["font"] = ("Consolas",14) area.insert(END,conteudo) # Posiciona componentes na tela rotulo.pack(padx=10) area.pack(padx=10, fill=BOTH) texto.pack(fill =X, padx=10, pady=10) botao.pack(padx=10) #loop do tcl mainloop()
Muito boa explicação. Apenas retificando um ponto:
Para o Python 3.4 (Que é a versão que eu utilizo e não sei a partir de qual versão se aplica a minha explicação) a sintaxe para aplicar o ScrolledText tem que ficar assim:
from tkinter import *
from tkinter.scrolledtext import ScrolledText
.
.
.
.
area = ScrolledText(master, height=10, width=40)