Radiobutton

chk = tk.Radiobutton(parent, opcao=valor, ...)

Cria um Radiobutton numa janela ou numa frame, ‘parent’.

O construtor retorna o objeto Radiobutton.

O componente Radiobutton é um componente que tem 2 estados 1 ou 0, alternando o estado quando se clica nele.

Um componente Radiobutton é composto por duas partes: um indicator que mostra o estado do componente, e uma label que mostra o texto ao lado do componente.

Podemos alterar o aspecto de um Radiobutton se usarmos a opção indicator e a pusermos a 0. Isso transforma o componente num radiobutton com dois estados, conforma está clicado ou não:

Fig. 1 – Componente Radiobutton com indicatoron=0

Para obter e/ou alterar o estado do Radiobutton temos de criar uma variável de controle, instância da classe IntVar, que depois referenciamos na propriedade variable.

Podemos capturar os eventos sobre o Radiobutton, definindo uma função de callback, na propriedade command.

Atributos

OpçãoDescrição
activebackgroundCor de fundo quando o cursor está sobre o radiobutton.
activeforegroundCor de texto quando o cursor está sobre o radiobutton.
anchorPosicionamento do texto: CENTER, N, S, E, W, NE, NW, SE, SW.
bd ou borderwidthEspessura do bordo à volta do radiobutton. 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 radiobutton é clicado.
compoundUsar esta opção caso queira usar texto e gráfico neste componente. Os valores desta opção descrevem o posicionamento do gráfico face ao texto e podem ser: BOTTOM, TOP, LEFT, RIGHT, or CENTER.
cursorNome do cursor a ser mostrado quando o rato está sobre o radiobutton.
defaulttk.NORMAL é o valor de defeito; tk.DISABLED se o radiobutton fôr para ser mostrado desabilitado.
disabledforegroundCor de texto usado quando o radiobutton estiver desabilitado.
fg ou foregroundCor de texto.
fontNome da fonte do texto do radiobutton.
heightAltura do radiobutton em número de linhas (para radiobutton com texto) ou pixeis (para radiobutton com imagem).
highlightbackgroundCor do foco quando o radiobutton nao tem o foco.
highlightcolorCor do foco quando o radiobutton tem o foco.
highlightthicknessEspessura do foco.
imageImagem a ser mostrada (em vez do texto)
indicatoronSe esta opção fôr igual a zero, o radiobutton transforma-se num radiobutton com dois estados: para baixo está selecionado(1), para cima está deselecionado (0).
justifyJustificação de multiplas linhas: tk.LEFT, tk.CENTER ou tk.RIGHT.
offreliefPor defeito, um radiobutton está para cima (RAISED) quando o seu valor é 0 (off). Pode-se usar esta opção para definir outros estilos de relevo quando o radiobutton está off.
offvaluePor defeito, a variável de controle está a 0 quando o radiobutton está off. Pode-se usar esta opção para definir outro valor para a variável de controle quando o radiobutton está off.
onvaluePor defeito, a variável de controle está a 1 quando o radiobutton está on. Pode-se usar esta opção para definir outro valor para a variável de controle quando o radiobutton está on.
overreliefEstilo de relevo quando o rato está sobre o radiobutton. Valor de defeito é tk.RAISED.
padxPadding adicional à esquerda e à direita do texto.
padyPadding adicional acima e abaixo do texto.
reliefTipo de relevo do radiobutton. Valor de defeito: tk.RAISED.
selectcolorDefine a cor do radiobutton quando está On.
selectimageDefine uma imagem quando o radiobutton está On.
stateValor tk.DISABLED torna o radiobutton irresponsivo. Valor tk.ACTIVE quando o rato está sobre o radiobutton. Valor tk.NORMAL é o valor de defeito.
takefocusSe igual a zero o radiobutton não receberá o foco a partir do teclado.
textTexto do radiobutton.
textvariableUma instância de StringVar() que está associada ao texto do radiobutton. Se o texto da variável mudar, o texto do radiobutton mudará igualmente.
valueQuando um radiobutton é selecionado, à sua variável de controle é atribuido o valor da opção value. Se a variável de controle é um IntVar deve atribuir a cada radiobutton no grupo, um valor inteiro diferente. Se a variável de controle é um StringVar deve atribuir a cada radiobutton no grupo, um valor de string diferente.
variableDefine a variável de controle que o radiobutton partilha com outros do grupo. Pode ser um IntVar ou um StringVar.
widthLargura do radiobutton em carateres (para radiobutton com text) ou pixeis (para radiobutton com imagem).
wraplengthSe este valor fôr um valor positivo, as linhas de texto serão quebradas para caberem neste comprimento.

Métodos

.deselect() : deseleciona o radiobutton: põe-no a Off.

.flash() : pisca o radiobutton entre as cores ativa e normal.

.invoke() : chama a função especificada em command e retorna o que aquela função retornar. Não tem efeito se o radiobutton estiver desabilitado ou não estiver definida uma função de callback.

.select() : seleciona o radiobutton: põe-no a On.

Exemplo:

from tkinter import *
from tkinter import messagebox

window = Tk()

v = IntVar()
v.set(1)  #escolha inicial: Python

#função de callback do radiobutton quando clicado:
def showLinguagem():
    print(v.get())

#função de callback do botão:
def verLinguagem():
    if v.get() == 1:
        messagebox.showinfo("Linguagem", "Python")
    elif v.get() == 2:
        messagebox.showinfo("Linguagem", "Java")
    elif v.get() == 3:
        messagebox.showinfo("Linguagem", "Javascript")
    elif v.get() == 4:
        messagebox.showinfo("Linguagem", "PHP")

Label(window,
         text="""Linguagem de programação:""",
         justify = LEFT,
         padx = 20).pack()

#radio buttons:
Radiobutton(window, text="Python", padx=20, variable=v, command=showLinguagem, value=1 ).pack(anchor=W)
Radiobutton(window, text="Java", padx=20, variable=v, command=showLinguagem, value=2 ).pack(anchor=W)
Radiobutton(window, text="Javascript", padx=20, variable=v, command=showLinguagem, value=3 ).pack(anchor=W)
Radiobutton(window, text="PHP", padx=20, variable=v, command=showLinguagem, value=4 ).pack(anchor=W)

bt = Button(window, text="Ver", command=verLinguagem)
bt.pack()

window.mainloop()

Saída: