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:
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.
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.