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:
- Instalación de lo que vamos a necesitar.
- Qt, versiones y diferencias.
- Hola, Mundo.
- Módulos en Qt (este capítulo).
- Añadimos icono a la ventana principal.
- Tipos de ventana en un GUI.
- Ventana de inicio – SplashScreen.
- Menú principal. Introducción.
- Mejorando algunas cosas vistas.
- Gestión de eventos o Acción y reacción.
- Introducción a Designer.
- Los Widgets vistos a través de Designer: Primera parte.
- Los Widgets vistos a través de Designer: Segunda parte.
- Los widgets vistos a través de Designer: Tercera Parte.
- Los widgets vistos a través de Designer: Cuarta Parte.
- Los widgets vistos a través de Designer: Quinta Parte.
- Los widgets vistos a través de Designer: Sexta parte.
- TBD… (lo actualizaré cuando tenga más claro los siguientes pasos).
[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.
- Aquí tenéis la referencia a PyQt5.
- Y aquí tenéis la referencia a PySide2.
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.