Como Inserir Label na janela com o click de um botão (Tkinter)?

1. Como Inserir Label na janela com o click de um botão (Tkinter)?

Cleber Gobira
globrother

(usa Debian)

Enviado em 12/07/2018 - 02:16h

Boa noite pessoal.

Estou começando a aprender Python, comecei a implementar algo como um bloco de notas usando o Tkinter, porém estou com um problema. Gostaria de inserir Labels a cada vez que o botão fosse pressionado. Minha janela está da seguinte forma:

Na parte inferior tenho uma caixa de texto tipo "Entry" e logo ao lado um botão. No caso gostaria de digitar o texto na caixa e ao apertar o botão o texto fosse inserido na (linha 0) e (coluna 0) , o próximo texto digitado seria alocado na (linha 1) e (coluna 0), o próximo na (linha 2) e (coluna 0) ... , ou seja, um abaixo do outro.

abaixo segue o código que tentei fazer, mas sempre substitui a linha anterior também:
class App():
"""."""

def __init__(self):
"""."""
self.root = tk.Tk()
self.root.title('Bloco de Notas')
self.root.columnconfigure(0, weight=1) # coluna 0 expansível peso=1
self.root.rowconfigure(0, weight=0)

self.string = []
self.lb = ttk.Label(self.root, wraplength=win_width,
text='Primeira Nota')
self.lb.grid(pady=4, row=0, column=0, columnspan=2, sticky='W'+'E')

self.ent = tk.Entry(self.root)
self.ent.grid(pady=5, row=1, column=0, sticky='W'+'E')

self.BT1 = ttk.Button(self.root,
text='Gravar', command=self.incluir)
self.BT1.grid(pady=5, row=1, column=1)

self.root.mainloop()

def incluir(self):
"""."""
conteudo = (self.ent.get())
self.lb['text'] = conteudo
print('conteudo =', conteudo)

self.BT1.grid_forget()
self.ent.grid_forget()
self.string.append(conteudo)
print('string =', self.string)
comp = (len(self.string))
print('comp = ', comp)
self.ent = tk.Entry(self.root)
self.ent.grid(pady=5, row=comp-1, column=0,
columnspan=2, sticky='W'+'E')
self.lb = ttk.Label(self.root, wraplength=win_width,
text=self.string[comp-1])
self.lb.grid(pady=4, row=comp,
column=0, columnspan=2, sticky='E'+'W')
self.BT1.grid(pady=5, row=comp, column=3)

App()


Nesse link tem uma imagem de como está ficando.
https://uploaddeimagens.com.br/images/001/505/560/full/print-bloco-notas.png

não aparece a primeira nota e fica a ultima duplicada.




  






Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts