Saltar al contenido

Curso de creación de GUIs con Qt5 y Python. Capítulo 03: Módulos Qt

En los anteriores capítulos hemos establecido una base para intentar que los pequeños pasos que demos sean cada vez más firmes en nuestro viaje por el mundo de las aplicaciones de escritorio usando Python y Qt. En este capítulo describo muy por encima los módulos más importantes que tenemos en Qt.

Índice:

[Los materiales para este capítulo los podéis descargar de aquí]

[INSTALACIÓN] Si todavía no has pasado por el inicio del curso, donde explico cómo poner a punto todo, ahora es un buen momento para hacerlo y después podrás seguir con esta nueva receta.

Módulos

Qt dispone de un montón de funcionalidad. Vamos a ver un poco por encima lo más habitual para saber todo lo que podríamos llegar a hacer.

QtCore (PyQt5 y PySide2)

Contiene todas las clases principales que no están relacionadas directamente con el GUI: contiene la clase base de todos los objetos de Qt (QObject), contiene la clase para el bucle de eventos (QEventLoop), clases para fechas (QDate, QDateTime,…), clases abstractas para crear modelos (QAbstractTableModel, QAbstractListModel),…

Ahora mismo todo esto no tiene porque tener mucho sentido para nosotros y no vamos a usar muchas de estas cosas explícitamente pero está bien que tengamos una pequeña noción acerca de dónde vienen algunas cosas.

QtWidgets (PyQt5 y PySide2)

Contiene clases que se traducen en elementos que permiten añadir a nuestra ventana elementos típicos de aplicaciones de escritorio como botones, deslizadores, checkboxes, áreas de texto, tablas,…

Este módulo lo usaremos bastante a lo largo del tutorial/curso.

QtGui (PyQt5 y PySide2)

Contiene clases relacionadas con la integración del sistema de ventanas, texto, gráficos,… Se usan internamente por Qt para poder proporcionarnos los widgets (alto nivel) por lo que usando los widgets estamos usando estas clases de alguna forma entre bambalinas. Si usamos las clases que provienen de este módulo nos permitirá tener mayor control (más bajo nivel) en algunos contextos.

Usaremos algunas de estas cosas pero de forma bastante limitada.

Otros módulos disponibles

Seguramente veremos poco o nada del resto de módulos pero para que os hagáis una idea dejo algunos de ellos aquí citados. Fijaos que algunos solo están disponibles para PyQt5 o para PySide2. En esos casos se indicará entre paréntesis. También puede ser que cambie el nombre como QtChart y QtCharts:

  • Qt3DAnimation, Qt3DCore, Qt3DExtras, Qt3DInput, Qt3DLogic, Qt3DRender: Clases para trabajar con objetos 3D.
  • QtBluetooth (solo PyQt5): Clases para conectividad Bluetooth entre dispositivos.
  • QtChart (PyQt5) / QtCharts (PySide2): Clases para la creación de gráficos 2D.
  • QtDataVisualization: Clases para visualizar datos en 3D.
  • QtTextToSpeech (PySide2): Proporciona una API para el acceso a motores de text-to-speech.
  • QtMultimedia, QtMultimediaWidgets: Clases para contenido multimedia, cámaras y radios.
  • QtLocation: Clases para la creación de aplicaciones de mapas.
  • QtPositioning: Clases para obtener información de posicionamiento a partir de satelite, wifi etc.
  • QtSensors: Clases para acceder a sensores del sistema.
  • QtSvg: Clases para soporte a SVG.
  • QtHelp: Clases para crear y ver documentación con búsqueda.
  • QtPrintSupport: Clases para poder imprimir de forma más simple y portable.
  • QtSql: Clases para la integración con BBDD SQL.
  • QtTest: Soporte para poder realizar Unit Testing en aplicaciones GUI.

Resumen

Como véis, hay muchísima funcionalidad. Es raro que una sola aplicación vaya a hacer uso de toda la funcionalidad indicada más arriba pero lo que sí que es más o menos seguro es que se usarán los tres primeros módulos que he indicado, QtCore, QtWidgets y QtGui, en casi todos los GUIs que hagamos. Es por ello que nos vamos a centrar, sobre todo, en ellos.

Terminando

Este capítulo ha sido muy cortito pero es algo que quería comentar y que no tenía sentido mezclar con otros temas mucho más prácticos que vamos a ir tratando.

Espero que no os haya sabido a poco y que tengáis ganas de ver el nuevo capítulo.

P.D.: Como viene siendo habitual, podéis usar los comentarios para resolver las dudas que podáis tener.

Deja una respuesta

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

− three = 1

Pybonacci