PyQT-5 Tutorial Widgets
Seguimos con la serie de tutoriales Python orientados a la creación de Interfaces Gráficas de Usuario (GUI) con PyQT 5, en este nos enfocaremos en ver algunos de los widgets más usados a la hora del desarrollo de las aplicaciones, como: QCheckBox, QComboBox, QDateEdit, QLineEdit, QLabel, QProgressBar, QPushButton, QSlider, entre otros.
El primer widget que veremos en este tutorial pyqt-5 será el QCheckBox este es un control bastante simple, el mismo puede tener tres estados, activo (seleccionado), inactivo (no seleccionado), o ninguno de los anteriores, un estado nulo, usamos este control para representar una variable booleana que puede ser: true, false o null.
QLineEdit es un widget que le permite al usuario introducir una línea de texto, podemos obtener este texto usando en método QLineEdit.text() este control produce el evento textChanged cada vez que cambia en texto, usamos el método setPlaceHolderText() para establecer un texto que ayuda al usuario a saber qué información le está pidiendo nuestra aplicación.
QSlider es un control que permite al usuario seleccionar un valor que se encuentre dentro de un rango determinado, lo usaremos en conjunto con un QLCDNumber para mostrar el valor actual, para establecer el rango de valores validos usamos el método QSlider.setRange(int, int), para obtener o establecer el valor usamos QSlider.value() y QSlider.setValue(int) respectivamente, para mostrar el valor actual conectamos el evento valueChanged que se produce cada vez que cambia el valor con el método QLCDNumber.display que muestra el valor en el widget.
QCalendarWidget provee un calendario donde el usuario puede seleccionar una fecha, para darnos cuenta cuando un usuario seleccionar una nueva fecha manejamos el evento clicked en el obtenemos la fecha seleccionada por el usuario, este control tiene botones para navegar fácilmente por los diferentes años y meses, además podemos configura la información que deseamos mostrar y el formato de fecha.
QRadioButton este widget permite seleccionar una de varias opciones disponible en nuestra GUI, para seleccionar un QRadioButton mediante programación usaremos el método setChecked(bool) con True para seleccionarlo, False para lo contrario, disponemos también del método isChecked() para determinar si el control está o no seleccionado, el control QGroupBox lo usaremos simplemente para agrupar y organizar el widget.
El widget QPushButton crea un botón sobre el que podemos hacer clic, manejamos el evento clicked para saber cuando el usuario pulsa sobre el botón, este control ya lo hemos visto en varios tutoriales anteriores, más adelantes seguiremos viendo otros controles.
GitHub: Tutorial PyQT-5 Widgets
El primer widget que veremos en este tutorial pyqt-5 será el QCheckBox este es un control bastante simple, el mismo puede tener tres estados, activo (seleccionado), inactivo (no seleccionado), o ninguno de los anteriores, un estado nulo, usamos este control para representar una variable booleana que puede ser: true, false o null.
def addCheckBox(self): # Crear el widget cbx = QCheckBox('Mostrar/Ocultar', self) # Cambiar estado del CheckBox puede ser: Qt.PartiallyChecked, Qt.Checked, Qt.Unchecked cbx.setCheckState(Qt.PartiallyChecked) # Responder al evento de cambio de estado cbx.stateChanged.connect(self.cbxChange) # Ubicar el control en la posicion (x, y) cbx.move(20, 20) def cbxChange(self, state): print('CheckBox State: ', state)
QLineEdit es un widget que le permite al usuario introducir una línea de texto, podemos obtener este texto usando en método QLineEdit.text() este control produce el evento textChanged cada vez que cambia en texto, usamos el método setPlaceHolderText() para establecer un texto que ayuda al usuario a saber qué información le está pidiendo nuestra aplicación.
def addLineEdit(self): # crea un texto no es editable lbl = QLabel('Nombre:', self) lbl.move(20, 52) # crea un widget que permite editar una linea de texto txt = QLineEdit(self) txt.move(72, 50) # establece un texto informativo txt.setPlaceholderText('Dime tu nombre') # evento producido cada vez que cambia el texto txt.textChanged.connect(self.textChange) # establece el foco en el widget txt.setFocus() # obtiene el texto escrito nombre = txt.text() def textChange(self, text): print('El nuevo texto es: ', text)
QSlider es un control que permite al usuario seleccionar un valor que se encuentre dentro de un rango determinado, lo usaremos en conjunto con un QLCDNumber para mostrar el valor actual, para establecer el rango de valores validos usamos el método QSlider.setRange(int, int), para obtener o establecer el valor usamos QSlider.value() y QSlider.setValue(int) respectivamente, para mostrar el valor actual conectamos el evento valueChanged que se produce cada vez que cambia el valor con el método QLCDNumber.display que muestra el valor en el widget.
def addSlider(self): sld = QSlider(Qt.Horizontal, self) # establecer posicion (x,y) y dimenciones (ancho, alto) sld.setGeometry(20, 80, 150, 30) # indicar rango de valores validos sld.setRange(50, 250) # establecer valor inicial sld.setValue(120) # evento producido cada vez que cambia el valor sld.valueChanged.connect(self.valChange) num = QLCDNumber(self) num.setGeometry(180, 80, 50, 30) # mostrar valor inicial num.display(sld.value()) # cambiar valor QLCDNumber cuando cambiar QSlider sld.valueChanged.connect(num.display) def valChange(self, value): print('QSlider value: ', value)
QCalendarWidget provee un calendario donde el usuario puede seleccionar una fecha, para darnos cuenta cuando un usuario seleccionar una nueva fecha manejamos el evento clicked en el obtenemos la fecha seleccionada por el usuario, este control tiene botones para navegar fácilmente por los diferentes años y meses, además podemos configura la información que deseamos mostrar y el formato de fecha.
def addCalendar(self): cal = QCalendarWidget(self) cal.setGridVisible(True) cal.clicked.connect(self.timeSelected) cal.move(300, 20) def timeSelected(self, date): print('La Fecha es: ', date.toString())
QRadioButton este widget permite seleccionar una de varias opciones disponible en nuestra GUI, para seleccionar un QRadioButton mediante programación usaremos el método setChecked(bool) con True para seleccionarlo, False para lo contrario, disponemos también del método isChecked() para determinar si el control está o no seleccionado, el control QGroupBox lo usaremos simplemente para agrupar y organizar el widget.
def addRadioBoton(self): gbx = QGroupBox('Tu Lenguaje Favorito', self) gbx.setGeometry(20, 150, 185, 120) # crear tres QRadioButton radio1 = QRadioButton("C/C++") radio2 = QRadioButton("Python") radio3 = QRadioButton("Java") # agregar los widgets al layout vertical vbox = QVBoxLayout(self) vbox.addWidget(radio1) vbox.addWidget(radio2) vbox.addWidget(radio3) # establecer el layout del QGroupBox gbx.setLayout(vbox) # radio1.setChecked(True) # print(radio1.isChecked())
El widget QPushButton crea un botón sobre el que podemos hacer clic, manejamos el evento clicked para saber cuando el usuario pulsa sobre el botón, este control ya lo hemos visto en varios tutoriales anteriores, más adelantes seguiremos viendo otros controles.
GitHub: Tutorial PyQT-5 Widgets
Comentarios
Publicar un comentario