PyQt5 Tutorials

Botones de Radio PyQt5: Guía Completa

Spread the love

Este tutorial proporciona una guía completa sobre el uso del widget QRadioButton de PyQt5. Cubriremos los aspectos básicos, exploraremos el método setChecked y profundizaremos en la creación de grupos de botones de opción para una selección mutuamente excluyente. ¡Empecemos!

Tabla de contenido:

  1. Ejemplo básico de QRadioButton
  2. El método setChecked
  3. Creando grupos de botones de opción
  4. Gestionando la selección del usuario

1. Ejemplo básico de QRadioButton

El QRadioButton permite a los usuarios seleccionar una opción de un conjunto. Aquí hay un ejemplo simple:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Ejemplo PyQt5 QRadioButton")

layout = QVBoxLayout()
label = QLabel("Selecciona una opción:")
layout.addWidget(label)

radio1 = QRadioButton("Opción 1")
radio2 = QRadioButton("Opción 2")
radio3 = QRadioButton("Opción 3")

layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Esto crea tres botones de opción independientes. Para comprobar cuál está seleccionado, utilice el método isChecked().

2. El método setChecked

Seleccione programáticamente un botón de opción usando setChecked(True) o deseleccione con setChecked(False).


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QPushButton

# ... (código anterior) ...

button = QPushButton("Seleccionar Opción 2")
button.clicked.connect(lambda: radio2.setChecked(True))

layout.addWidget(button)

# ... (resto del código) ...

Esto agrega un botón que selecciona «Opción 2» cuando se hace clic.

3. Creando grupos de botones de opción

Para una selección mutuamente excluyente, use QButtonGroup. Esto asegura que solo un botón en el grupo pueda ser seleccionado a la vez.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QButtonGroup

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Ejemplo de Grupo PyQt5 QRadioButton")

layout = QVBoxLayout()
label = QLabel("Selecciona una opción:")
layout.addWidget(label)

button_group = QButtonGroup()
radio1 = QRadioButton("Opción 1")
radio2 = QRadioButton("Opción 2")
radio3 = QRadioButton("Opción 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. Gestionando la selección del usuario

Gestione eficientemente la selección del usuario usando la señal buttonClicked:


button_group.buttonClicked.connect(lambda button: print(f"Opción seleccionada: {button_group.id(button)}"))

Esto imprime el ID (asignado al agregarlo al grupo) del botón seleccionado. Reemplace la instrucción print con la acción deseada.

Este enfoque mejorado evita la comprobación manual del estado de cada botón y proporciona una solución más robusta y organizada para gestionar las selecciones de botones de opción en sus aplicaciones PyQt5.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *