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ção | Descrição |
---|---|
activebackground | Cor de fundo quando o cursor está sobre o radiobutton. |
activeforeground | Cor de texto quando o cursor está sobre o radiobutton. |
anchor | Posicionamento do texto: CENTER, N, S, E, W, NE, NW, SE, SW. |
bd ou borderwidth | Espessura do bordo à volta do radiobutton. 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 radiobutton é clicado. |
compound | Usar 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. |
cursor | Nome do cursor a ser mostrado quando o rato está sobre o radiobutton. |
default | tk.NORMAL é o valor de defeito; tk.DISABLED se o radiobutton fôr para ser mostrado desabilitado. |
disabledforeground | Cor de texto usado quando o radiobutton estiver desabilitado. |
fg ou foreground | Cor de texto. |
font | Nome da fonte do texto do radiobutton. |
height | Altura do radiobutton em número de linhas (para radiobutton com texto) ou pixeis (para radiobutton com imagem). |
highlightbackground | Cor do foco quando o radiobutton nao tem o foco. |
highlightcolor | Cor do foco quando o radiobutton tem o foco. |
highlightthickness | Espessura do foco. |
image | Imagem a ser mostrada (em vez do texto) |
indicatoron | Se 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). |
justify | Justificação de multiplas linhas: tk.LEFT, tk.CENTER ou tk.RIGHT. |
offrelief | Por 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. |
offvalue | Por 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. |
onvalue | Por 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. |
overrelief | Estilo de relevo quando o rato está sobre o radiobutton. 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 radiobutton. Valor de defeito: tk.RAISED. |
selectcolor | Define a cor do radiobutton quando está On. |
selectimage | Define uma imagem quando o radiobutton está On. |
state | Valor tk.DISABLED torna o radiobutton irresponsivo. Valor tk.ACTIVE quando o rato está sobre o radiobutton. Valor tk.NORMAL é o valor de defeito. |
takefocus | Se igual a zero o radiobutton não receberá o foco a partir do teclado. |
text | Texto do radiobutton. |
textvariable | Uma instância de StringVar() que está associada ao texto do radiobutton. Se o texto da variável mudar, o texto do radiobutton mudará igualmente. |
value | Quando 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. |
variable | Define a variável de controle que o radiobutton partilha com outros do grupo. Pode ser um IntVar ou um StringVar. |
width | Largura do radiobutton em carateres (para radiobutton com text) ou pixeis (para radiobutton com imagem). |
wraplength | Se 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:
