PyQt5 Tutorials

Botões de Rádio PyQt5: Um Guia Completo

Spread the love

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:

  1. Exemplo básico de QRadioButton
  2. O método setChecked
  3. Criando grupos de botões de rádio
  4. 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *