Python PyQt – Interfaz gráfica con Radio Buttons y Checkboxes

Posted by


En este tutorial, aprenderás a usar los radio buttons y checkboxes en una interfaz gráfica creada con Python y PyQt. Te mostraré cómo crear, personalizar y manejar estos elementos interactivos para que puedas mejorar la usabilidad y funcionalidad de tus aplicaciones.

  1. Crear una ventana principal

Lo primero que debemos hacer es crear una ventana principal donde colocaremos nuestros radio buttons y checkboxes. Para esto, utilizaremos la clase QMainWindow de PyQt. El siguiente código muestra cómo crear una ventana básica con un tamaño fijo:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow

app = QApplication(sys.argv)

window = QMainWindow()
window.setGeometry(100, 100, 400, 300)
window.setWindowTitle('Radio Button y Checkbox Tutorial')
window.show()

sys.exit(app.exec_())
  1. Agregar radio buttons

Los radio buttons son botones de selección exclusiva, lo que significa que solo se puede seleccionar una opción a la vez. Para agregar radio buttons a nuestra ventana, utilizaremos la clase QRadioButton de PyQt. En el siguiente código, creamos dos radio buttons y los colocamos en la ventana principal:

from PyQt5.QtWidgets import QRadioButton

radio1 = QRadioButton('Opción 1', window)
radio1.move(50, 50)
radio1.setChecked(True)

radio2 = QRadioButton('Opción 2', window)
radio2.move(50, 70)

window.show()

En este ejemplo, hemos creado dos radio buttons con etiquetas "Opción 1" y "Opción 2" respectivamente. El método setChecked(True) se utiliza para seleccionar la primera opción por defecto.

  1. Agregar checkboxes

Los checkboxes son casillas de verificación que permiten al usuario seleccionar múltiples opciones a la vez. Para agregar checkboxes a nuestra ventana, utilizamos la clase QCheckBox de PyQt. En el siguiente código, creamos dos checkboxes y los colocamos en la ventana principal:

from PyQt5.QtWidgets import QCheckBox

checkbox1 = QCheckBox('Opción 1', window)
checkbox1.move(50, 100)

checkbox2 = QCheckBox('Opción 2', window)
checkbox2.move(50, 120)

window.show()

En este ejemplo, hemos creado dos checkboxes con etiquetas "Opción 1" y "Opción 2" respectivamente.

  1. Manejar eventos

Para realizar acciones basadas en la selección de radio buttons y checkboxes, necesitamos conectar los eventos correspondientes. En PyQt, esto se logra mediante la señal toggled que se emite cuando los elementos cambian de estado. En el siguiente código, conectamos los eventos de los radio buttons y checkboxes a funciones que muestran un mensaje cuando se selecciona una opción:

def radio_button_clicked():
    print('Radio button seleccionado:', radio1.text())

def checkbox_state_changed():
    if checkbox1.isChecked():
        print('Checkbox 1 seleccionado')
    if checkbox2.isChecked():
        print('Checkbox 2 seleccionado')

radio1.toggled.connect(radio_button_clicked)
checkbox1.stateChanged.connect(checkbox_state_changed)
checkbox2.stateChanged.connect(checkbox_state_changed)

En este ejemplo, la función radio_button_clicked se conecta al evento toggled del radio button 1, mientras que la función checkbox_state_changed se conecta al evento stateChanged de los checkboxes 1 y 2.

  1. Ejecutar la aplicación

Finalmente, ejecuta la aplicación para ver la ventana con los radio buttons y checkboxes. Puedes interactuar con ellos y ver cómo se activan los eventos que hemos definido. ¡Experimenta con diferentes configuraciones y funciones para personalizar tu interfaz gráfica!

¡Felicidades! Ahora sabes cómo usar radio buttons y checkboxes en una interfaz gráfica creada con Python y PyQt.¡A disfrutar!

0 0 votes
Article Rating
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@jorgecuatro
2 months ago

Excelente…Un entorno grafico para Phyton??? Esto se pone interesante…

@elisanure3645
2 months ago

excelente video, excelente didáctica, felicitaciones..

@CruzRamonDiaz
2 months ago

ahora me da NameError: name 'Dialogo' is not defined

@CruzRamonDiaz
2 months ago

para mi esto nunca funciona

@prietosystem
2 months ago

Buenas noches, muchas gracias por sus tutoriales, han sido de gran ayuda. Tengo una pregunta: Por qué en esta lección llamó la función self.radio_value() dentro de la clase "Dialogo" y en el video pasado por ej. no llamo las funciones validar_nombre ni validar_formulario en la clase Dialogo? acaso son distintas? y por qué? disculpe mi ignorancia pero quiero diferenciar cuando tengo que llamarla y cuando no.
Saludos desde Venezuela

@christiannegron5046
2 months ago

Hola Manual,
Gracias a tu tutorial, pude hacer un gran progreso en mi script. Ahora sabe como puede assignar una variable cuando unos de los "radio button" es "click"?

Y como puede pasar estos "variable" a un file haciendo append?

Gracias