Tkinter Tutorial - Radiobutton

  1. Exemplo básico do Radiobutton Tkinter
  2. Tkinter Radiobutton - Obter valor
  3. Alterar o Tipo de Indicador do Radiobutão de Tkinter
  4. Função de retorno de ligação do Tkinter Radiobutton

Você aprendeu label, botão e Checkbutton nas últimas seções. Os widgets Tkinter têm opções, propriedades ou métodos bastante similares, portanto, a partir desta seção, podemos aprender em um ritmo rápido.

O Radiobuton é um botão do tipo um de muitos. Ele tem mais de uma opção na seleção, mas o usuário só poderia selecionar uma delas. O mesmo que os widgets introduzidos anteriormente, o Radibutton pode conter texto ou imagem e pode ligar a função ou método de retorno a ele. Esta função de callback é acionada automaticamente quando o botão é pressionado.

Exemplo básico do Radiobutton Tkinter

Tkinter Radiobutton_Basic.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

radioValue = tk.IntVar() 

 
rdioOne = tk.Radiobutton(app, text='January',
                             variable=radioValue, value=1) 
rdioTwo = tk.Radiobutton(app, text='Febuary',
                             variable=radioValue, value=2) 
rdioThree = tk.Radiobutton(app, text='March',
                             variable=radioValue, value=3)

rdioOne.grid(column=0, row=0)
rdioTwo.grid(column=0, row=1)
rdioThree.grid(column=0, row=2)

app.mainloop()

O resultado da demonstração básica Radiobutton acima está abaixo

Exemplo Básico de Botão de Verificação de Tkinter

radioValue = tk.IntVar()

Tal como o botão de verificação, os botões de rádio precisam de associar a eles valores de determinado tipo de dados.

rdioOne = tk.Radiobutton(app, text='January',
                             variable=radioValue, value=1) 
rdioTwo = tk.Radiobutton(app, text='Febuary',
                             variable=radioValue, value=2) 
rdioThree = tk.Radiobutton(app, text='March',
                             variable=radioValue, value=3)

Aqui, os botões com o texto de January, Febuary e March são criados aqui. Os botões de rádio no mesmo grupo devem e devem ter valores únicos.

Pergunta

E se eles tiverem valores duplicados?

Tkinter Radiobutton - Obter valor

Os botões de rádio no mesmo grupo compartilham a mesma variável, radioValor, como mostrado no exemplo acima, e são atribuídos com valores diferentes com a opção value.

O valor do botão selecionado atualiza automaticamente a variável radioValue que é um tk.IntVar.

O texto da etiqueta reflete automaticamente o valor do botão selecionado nos códigos dos exemplos abaixo.

import tkinter as tk
 
app = tk.Tk() 
app.geometry('200x100')

radioValue = tk.IntVar() 

 
rdioOne = tk.Radiobutton(app, text='January',
                             variable=radioValue, value=0) 
rdioTwo = tk.Radiobutton(app, text='Febuary',
                             variable=radioValue, value=1) 
rdioThree = tk.Radiobutton(app, text='March',
                             variable=radioValue, value=2)


rdioOne.grid(column=0, row=0, sticky="W")
rdioTwo.grid(column=0, row=1, sticky="W")
rdioThree.grid(column=0, row=2, sticky="W")


labelValue = tk.Label(app, textvariable=radioValue)
labelValue.grid(column=2, row=0, sticky="E", padx=40)


app.mainloop()

A textvaria da etiqueta labelValue é a mesma com a opção variable dos botões de rádio, para que o texto da etiqueta possa se atualizar automaticamente.

Tkinter Valor do Radiobutton_get

Alterar o Tipo de Indicador do Radiobutão de Tkinter

O indicador do botão de rádio padrão é um furo circular com espaço em branco no interior, mas também pode ser substituído por uma caixa contendo texto ou imagem. A caixa de texto é levantada quando o botão de rádio não é seleccionado, e é afundada quando é pressionado.

Tkinter Tutorial Radiobutton Levantado e Afundado

rdioOne = tk.Radiobutton(app, text='I am raised',
                             variable=radioValue, value=1,
                             indicatoron = 0) 

O indicatoron é a opção para ativar ou desativar o indicador de furo circular do botão raido. indicatoron = indicator on.

Função de retorno de ligação do Tkinter Radiobutton

É exatamente o mesmo com Botão Checkbutton Tkinter na opção como definir a função de callback do botão. Utilize a opção command=.