Este tutorial fornece um guia abrangente sobre o uso do widget QRadioButton
do PyQt5. Abordaremos os conceitos básicos, exploraremos o método setChecked
e aprofundaremos a criação de grupos de botões de rádio para seleção mutuamente exclusiva. Vamos começar!
Sumário:
- Exemplo básico de
QRadioButton
- O método
setChecked
- Criando grupos de botões de rádio
- Lidando com a seleção do usuário
1. Exemplo básico de QRadioButton
O QRadioButton
permite que os usuários selecionem uma opção de um conjunto. Aqui está um exemplo simples:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Exemplo PyQt5 QRadioButton")
layout = QVBoxLayout()
label = QLabel("Selecione uma opção:")
layout.addWidget(label)
radio1 = QRadioButton("Opção 1")
radio2 = QRadioButton("Opção 2")
radio3 = QRadioButton("Opção 3")
layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
Isso cria três botões de rádio independentes. Para verificar qual está selecionado, use o método isChecked()
.
2. O método setChecked
Selecione programaticamente um botão de rádio usando setChecked(True)
ou desative com setChecked(False)
.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QPushButton
# ... (código anterior) ...
button = QPushButton("Selecionar Opção 2")
button.clicked.connect(lambda: radio2.setChecked(True))
layout.addWidget(button)
# ... (resto do código) ...
Isso adiciona um botão que seleciona “Opção 2” quando clicado.
3. Criando grupos de botões de rádio
Para seleção mutuamente exclusiva, use QButtonGroup
. Isso garante que apenas um botão no grupo possa ser selecionado por vez.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QButtonGroup
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Exemplo de Grupo PyQt5 QRadioButton")
layout = QVBoxLayout()
label = QLabel("Selecione uma opção:")
layout.addWidget(label)
button_group = QButtonGroup()
radio1 = QRadioButton("Opção 1")
radio2 = QRadioButton("Opção 2")
radio3 = QRadioButton("Opção 3")
button_group.addButton(radio1, 1)
button_group.addButton(radio2, 2)
button_group.addButton(radio3, 3)
layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
4. Lidando com a seleção do usuário
Gerencie eficientemente a seleção do usuário usando o sinal buttonClicked
:
button_group.buttonClicked.connect(lambda button: print(f"Opção selecionada: {button_group.id(button)}"))
Isso imprime o ID (atribuído ao adicionar ao grupo) do botão selecionado. Substitua a instrução print
pela ação desejada.
Essa abordagem aprimorada evita a verificação manual do estado de cada botão e fornece uma solução mais robusta e organizada para gerenciar seleções de botões de rádio em seus aplicativos PyQt5.