Tkinter Tutorial - Botão
O Tkinter button widget é bastante semelhante ao Tkinter Label widget. Ele tem quase as mesmas opções que as da etiqueta, exceto que tem uma opção extra default
. Vamos dar detalhes deste default
depois de um exemplo básico de botão.
Você poderia gerar dois botões mais simples utilizando os códigos demo abaixo.
from sys import version_info
if version_info.major == 2:
import Tkinter as tk
elif version_info.major == 3:
import tkinter as tk
app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()
A janela com dois botões adjacentes um ao outro mostra depois de executar os códigos.
Botão Tkinter opção default
A opção default
no botão diz que o botão é o botão padrão na GUI, por exemplo, aquele que é invocado automaticamente quando o usuário pressiona a tecla Enter ou Return.
Botão Tkinter Comando Callback
A opção command
invoca a função de retorno de chamada quando o botão é pressionado.
from sys import version_info
if version_info.major == 2:
import Tkinter as tk
elif version_info.major == 3:
import tkinter as tk
app = tk.Tk()
labelExample = tk.Button(app, text="0")
def change_label_number():
counter = int(str(labelExample["text"]))
counter += 1
labelExample.config(text=str(counter))
buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)
buttonExample.pack()
labelExample.pack()
app.mainloop()
Ele cria um botão e um widget de etiqueta na janela principal. O número no texto da etiqueta é aumentado em 1 cada vez que o botão é clicado.
def change_label_number():
counter = int(str(labelExample["text"]))
counter += 1
labelExample.config(text=str(counter))
O change_label_number
é a função invocada quando o botão é clicado. Ele obtém o número da etiqueta e depois define a etiqueta aumentada em um.
buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)
Ele constrói a ligação entre o botão e sua função de callback.
Função de Callback com Argumentos do Botão de Comando do Tkinter
Você precisa de um objeto partial
de functools se você precisar passar argumentos para as funções de retorno de chamada. Objetos partial
são objetos com os argumentos posicionais args
e argumentos de palavras-chave keywords
.
Abaixo do código snippet demonstra como utilizar esta função parcial
no comando do botão.
def change_label_number(num):
counter = int(str(labelExample["text"]))
counter += num
labelExample.config(text=str(counter))
buttonExample = tk.Button(
app, text="Increase", width=30, command=partial(change_label_number, 2)
)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook