Python GUI con PyQT5

QT en librería utilizada para la creación de interfaces gráficas de usuario (GUI) en el lenguaje C++, soporta múltiples sistemas operativos como: Linux, Mac OS, Windows, etc., PyQT es la versión Python de QT, en este curso veremos la versión PyQT 5 y aprenderemos a crear GUI mediante código y usando el diseñador Qt Designer, usaremos los distintos layouts y controles que tenemos disponibles para desarrollar aplicaciones visualmente enriquecidas.

Lo primero que requerimos es crear un objeto de aplicación QApplication(sys.argv) el constructor recibe la lista de argumento de línea de comandos obtenida por sys.argv, este objeto es el encargado de administrar la aplicación PyQT5, para iniciar el bucle de mensajes utilizamos sys.exit(app.exec_()) luego de crear el QWidget deseado.

QWidget es la clase base de la que heredan todos los controles, el mismo posee un constructor en el que podemos indicar cuál es el QWidget padre, si usamos el constructor vacío el QWidget se comporta como una ventana.

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':
    app = QApplication(sys.argv)

    w = QWidget()
    w.setWindowTitle('Ventana PyQT-5')
    w.setWindowIcon(QIcon('icon.ico'))
    w.resize(1280, 720)
    w.show()

    sys.exit(app.exec_())

Hemos creado un QWidget llamado w, establecemos WindowTitle para cambiar el título de la ventana, WindowIcon indicando el QIcon nuevo icono para la ventana, al omitir esto se utilizara el icono por defecto, resize(1280, 720) para cambiar el tamaño al indicado en los parámetros y finalmente show para mostrar la ventana.

Agregar controles a la ventana


Como introducción veremos cómo agregar un control a una ventana, el primer ejemplo nos enseña cómo agregar un botón (QPushButton), podemos pulsar sobre el mismo y ejecutar una determinada acción.

btn = QPushButton('Este es un Button', w)
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.move(50, 50)

El constructor QPushButton recibe como primer parámetro el texto que contendrá el botón, el segundo es el QWidget en donde lo colocaremos, al establecer ToolTip cambia el mensaje que aparece cuando ubicamos el cursor sobre el botón y para cambiar la posición donde se encuentra utilizamos move(x, y) indicando las respectivas coordenadas.

Algo que normalmente hacemos con los botones es agregarles un icono y desde luego hacer que el botón ejecute una acción al ser pulsado por el usuario, para el icono usamos setIcon(QIcon) como lo hicimos en la ventana, para ejecutar una acción usamos el evento clicked “se produce cada vez que se pulsa el botón” y lo conectamos a la función a ejecutar, para el ejemplo usaremos la función QCoreApplication.instance().quit para salir de la aplicación, podemos usar una función propia.

btn.setIcon(QIcon('icon.ico'))
btn.clicked.connect(QCoreApplication.instance().quit)

Para finalizar PyQT-5 viene con una aplicación de ejemplo donde podemos ver todas las características de PyQT como animaciones, estilos, controles, opengl y otros, este se instalará como PyQt Examples y es un buen punto de partida para conocer este framework.

Ejemplos PyQT5
GitHub: GUI con PyQT – Introducción

Comentarios

  1. Hola, muy buenas entradas sobre PyQt5, seguiré sus avances. En Mi Diario Python estamos impartiendo un Tutorial Python 3.5 Español, si gustan pueden darse una vuelta. Saludos y gracias por compartir ;). Diego

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Conectar SQL Server con Java

Entrenar OpenCV en Detección de Objetos

Detección de figuras geométricas