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:
- Ejemplo básico de
QRadioButton
- El método
setChecked
- Creando grupos de botones de opción
- 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.