Tkinter Tutorial - Radiobutton
- Exemplo básico do Radiobutton Tkinter
- Tkinter Radiobutton - Obter valor
- Alterar o Tipo de Indicador do Radiobutão de Tkinter
- Função de retorno de ligação do Tkinter Radiobutton
![Tkinter Tutorial - Radiobutton](/img/site/default-feature-image.webp)
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
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
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.
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.
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.
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](/pt/tutorial/tkinter-tutorial/tkinter-checkbutton/#Tkinter Checkbutton Callback Function Binding) na opção como definir a função de callback do botão. Utilize a opção command=
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook