Button
bt = Button(parent, opcao=valor, ...)
Cria um botão numa janela ou numa frame, ‘parent’.
O construtor retorna o objeto Button.
Atributos
| Opção | Descrição |
|---|---|
| activebackground | Cor de fundo quando o cursor está sobre o botão. |
| activeforeground | Cor de texto quando o cursor está sobre o botão. |
| anchor | Posicionamento do texto: CENTER, N, S, E, W, NE, NW, SE, SW. |
| bd ou borderwidth | Espessura do bordo à volta do botão. Valor de defeito: 2 pixeis. |
| bg ou background | Cor de fundo. |
| bitmap | Nome de um dos bitamps standard ou de um bitmap customizado. |
| command | Função a ser chamada quando o botão é clicado. |
| compound | Serve para definir como texto e imagem (bitmap ou foto) serão exibidos juntos no botão. Ele permite que você mostre tanto o texto quanto a imagem ao mesmo tempo, especificando a posição relativa entre eles. Valores possiveis: “none”: (padrão) exibe apenas a imagem, se houver, ou apenas o texto. “top”: a imagem aparece acima do texto. “bottom”: a imagem aparece abaixo do texto. “left”: a imagem aparece à esquerda do texto. “right”: a imagem aparece à direita do texto. “center”: a imagem aparece sobre o texto, centralizando ambos. |
| cursor | Nome do cursor a ser mostrado quando o rato está sobre o botão. |
| default | tk.NORMAL é o valor de defeito; tk.DISABLED se o botão fôr para ser mostrado desabilitado. |
| disabledforeground | Cor de texto usado quando o botão estiver desabilitado. |
| fg ou foreground | Cor de texto. |
| font | Nome da fonte do texto do botão. |
| height | Altura do botão em número de linhas (para botão com texto) ou pixeis (para botão com imagem). |
| highlightbackground | Cor do foco quando o botão nao tem o foco. |
| highlightcolor | Cor do foco quando o botão tem o foco. |
| highlightthickness | Espessura do foco. |
| image | Imagem a ser mostrada (em vez do texto) |
| justify | Justificação de multiplas linhas: tk.LEFT, tk.CENTER ou tk.RIGHT. |
| overrelief | Estilo de relevo quando o rato está sobre o botão. Valor de defeito é tk.RAISED. |
| padx | Padding adicional à esquerda e à direita do texto. |
| pady | Padding adicional acima e abaixo do texto. |
| relief | Tipo de relevo do botão. Valor de defeito: tk.RAISED. |
| repeatdelay | Ver repeatinterval. |
| repeatinterval | Se se pretender que o botão dispare a intervalos regulares, em milisegundos, quando o rato está sobre o botão, deve-se especificar este valoe nesta opção e o valor em milisegundos entre repetições na opção repeatdelay. |
| state | Valor tk.DISABLED torna o botão irresponsivo. Valor tk.ACTIVE quando o rato está sobre o botão. Valor tk.NORMAL é o valor de defeito. |
| takefocus | Se igual a zero o botão não receberá o foco a partir do teclado. |
| text | Texto do botão. |
| textvariable | Uma instância de StringVar() que está associada ao texto do botão. Se o texto da variável mudar, o texto do botão mudará igualmente. |
| underline | Valor de defeito é -1 o que significa que o texto do botão é sublinhado. Se fôr maior que zero, o caractere correspondente será sublinhado. |
| width | Largura do botão em carateres (para botão com text) ou pixeis (para botão com imagem). |
| wraplength | Se este valor fôr um valor positivo, as linhas de texto serão quebradas para caberem neste comprimento. |
Métodos
.flash() : Faz com que o botão alterne várias vezes entre as cores normal e activa. Se o botão estiver desabilitado este método não faz nada.
.invoke() : chama a função especificada em command e retorna o que aquela função retornar. Não tem efeito se o botão estiver desabilitado ou não estiver definida uma função de callback.
Exemplos:
Para mudarmos a cor de fundo e de texto de um botão usamos os atributos bg e fg:
from tkinter import * window = Tk()#função de callback chamada quando se clica no botão:def imprimir(): print("Imprimir!")#atributos bg e fg:btn = Button(window, bg='#FFA500', fg='#008B8B', text='imprimir', compound='top', command=imprimir) btn.pack() window.mainloop()
Saída:

Para mudarmos a cor de fundo e de texto quando clicamos no botão, usamos os atributos activebackground e activeforeground:
from tkinter import * window = Tk()#função de callback chamada quando se clica no botão:def imprimir(): print("Imprimir!")## activebackground, activeforeground:#btn = Button(window, text="Imprimir", activebackground='#FF8C00', activeforeground='#008B8B', command=imprimir) btn.pack() window.mainloop()
Saída:

Para colocar-mos uma imagem num botão usamos o atributo image. Carregamos a imagem com a classe PhotoImage:
from tkinter import *
window = Tk()#função de callback chamada quando se clica no botão:
def imprimir():
print("Imprimir!")#carrega a imagem 'bt_icon1.png':
icon=PhotoImage(file="tkinter.png")#atributo image:
btn = Button(window, image=icon, command=imprimir)
btn.pack()
window.mainloop()
Saída:

Para pôr-mos uma imagem no botão juntamente com texto, usamos os atributos image e compound, que posiciona a imagem em relação ao texto:
from tkinter import *
window = Tk()#função de callback chamada quando se clica no botão:
def imprimir():
print("Imprimir!")#carrega a imagem 'bt_icon1.png':
icon=PhotoImage(file="tkinter.png")#atributo image:
btn = Button(window, image=icon, text='imprimir', compound="top", command=imprimir)
btn.pack()
window.mainloop()
Saída:

