Button

bt = Button(parent, opcao=valor, ...)

Cria um botão numa janela ou numa frame, ‘parent’.

O construtor retorna o objeto Button.

Atributos

OpçãoDescrição
activebackgroundCor de fundo quando o cursor está sobre o botão.
activeforegroundCor de texto quando o cursor está sobre o botão.
anchorPosicionamento do texto: CENTER, N, S, E, W, NE, NW, SE, SW.
bd ou borderwidthEspessura do bordo à volta do botão. Valor de defeito: 2 pixeis.
bg ou backgroundCor de fundo.
bitmapNome de um dos bitamps standard ou de um bitmap customizado.
commandFunção a ser chamada quando o botão é clicado.
compoundServe 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.
cursorNome do cursor a ser mostrado quando o rato está sobre o botão.
defaulttk.NORMAL é o valor de defeito; tk.DISABLED se o botão fôr para ser mostrado desabilitado.
disabledforegroundCor de texto usado quando o botão estiver desabilitado.
fg ou foregroundCor de texto.
fontNome da fonte do texto do botão.
heightAltura do botão em número de linhas (para botão com texto) ou pixeis (para botão com imagem).
highlightbackgroundCor do foco quando o botão nao tem o foco.
highlightcolorCor do foco quando o botão tem o foco.
highlightthicknessEspessura do foco.
imageImagem a ser mostrada (em vez do texto)
justifyJustificação de multiplas linhas: tk.LEFT, tk.CENTER ou tk.RIGHT.
overreliefEstilo de relevo quando o rato está sobre o botão. Valor de defeito é tk.RAISED.
padxPadding adicional à esquerda e à direita do texto.
padyPadding adicional acima e abaixo do texto.
reliefTipo de relevo do botão. Valor de defeito: tk.RAISED.
repeatdelayVer repeatinterval.
repeatintervalSe 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.
stateValor 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.
takefocusSe igual a zero o botão não receberá o foco a partir do teclado.
textTexto do botão.
textvariableUma 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.
underlineValor de defeito é -1 o que significa que o texto do botão é sublinhado. Se fôr maior que zero, o caractere correspondente será sublinhado.
widthLargura do botão em carateres (para botão com text) ou pixeis (para botão com imagem).
wraplengthSe 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: