Bônus Tkinter: Entry e Text

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.

from tkinter import* #para python 3.6 digita-se o Tkinter com a primeira letra em minusculo.

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.

from tkinter import* #para python 3.6 digita-se o Tkinter com a primeira letra em minusculo.

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 import*
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()

Deixe um comentário