Ao criar nossa janela, pensamos logo em criar também nosso widgets. responsáveis pela entrada de textos, pela realização de eventos na janela e etc.
Esse Bônus vem separado do link de tutoriais no educadores no linux Top. Mas vai relatar um pouco sobre a diferença clara entre esses dois Widgets.
Primeiramente, para ser breve, vamos começar pelo Entry, talvez mais popular, uma vez que se encontra muito mais coisas sobre ele na internet do que o Text.
O Entry é feito para receber pequenos valores, como um login, uma senha, uma palavra, etc. logo seu espaço visual é menor. Essa é a primeira característica. Todo Widget tem que ser empacotado, e em Tkinter usamos pack, place, grid. Como já vimos na sequencia de tutorias. (veja aqui)
Logo para digitar nosso Entry faremos da seguinte forma.
janela = Tk ()
L = Label (janela, text=”Educadores no Linux”)
L.pck()
#criando o Entry()
E = Entry(janela) #o E pode ser substituído por qualquer coisa, ao lado de janela também pode vir várias instancias, como “font” para determinar a font.
E.pack() #pode ser usado outro empacotamento.
janela.mainloop()
Note na imagem como ficou nosso Entry:
Imagem do Entry |
Já o Text, ao contrário do Entry, recebe muito mais caracteres como entrada, podendo se escrever um texto com quantas linhas e paragrafos desejar.
Tomando por referencia o condigo do Entry, vamos substituir Entry, por text, e notemos a diferença.
janela = Tk ()
L = Label (janela, text=”Educadores no Linux”)
L.pack()
#criando o Text()
E = Text (janela) #o E pode ser substituido por qualquer coisa, ao lado de janela também pode vir várias instancias, como “font” para determinar a font.
E.pack() #pode ser usado outro empacotamento.
janela.mainloop()
Veja o resultado:
Imagem do Text |
Bom e como o artigo aqui tem o nome de bônus, vai aí um com gostinho de quero mais um código de uma aplicação que o uso Entry e manipula arquivo. Antes de executar esse código Py, peço que crie um documento com nome novo.txt na mesma pasta onde salvará seu arquivo do código .py, esse arquivo será manipulado por esse programa.
A sintaxe do código está diferente porque foi feito numa logica de programação orientada a objetos. Que veremos depois com mais detalhes.
Testem o código e veja o resultado, se quiserem postem fotos na nossa pagina no Facebook.
from tkinter.filedialog import asksaveasfilename
from tkinter.filedialog import askopenfilename
import random
class app():
def __init__(self):
self.abrir = open(“novo.txt”, “r”)
self.novo = self.abrir.read()
self.janela = Tk()
self.janela.wm_title(“P O O”)
self.janela.geometry(“300×300”)
self.testar = (“Bem vindo, Arthur Carlos da Silva”)
self.botao = Button (self.janela, text=”guardar”, command=self.ola)
self.botao.pack(side=BOTTOM, fill=X)
self.botao1 = Button (self.janela, text=”limpar”, command=self.eita)
self.botao1.pack(side=BOTTOM, fill=X)
self.low = Scrollbar(self.janela)
self.low.pack(side=RIGHT, fill=Y)
self.dd = Text (self.janela, font=”arial 14″)
self.dd.pack(expand=YES, fill=BOTH)
self.dd.insert(0.0, self.novo)
self.dd.config(yscrollcommand=self.low.set)
self.low.config(command=self.dd.yview)
self.janela.mainloop()
def ola(self):
sorteia = random.choice
sorte = (“#008300”, “#d11881″,”#069d82”, “#ea3100″,”#004229”, “#00b6ff”)
palavra = sorteia(sorte)
self.casa = open(“novo.txt”, “a”)
self.casa.write (“{}”.format(self.dd.get(0.0,END)))
self.botao [“bg”] = palavra
def eita (self):
self.casa = open(“novo.txt”, “w”)
self.casa.write (“”)
self.dd.destroy()
self.dd = Text (self.janela, font=”arial 14″)
self.dd.pack(expand=YES, fill=BOTH)
self.dd.insert(0.0, self.novo)
app()