Presentación
PySide6 es el binding oficial de Python para Qt 6. Permite utilizar desde Python las API del framework Qt para crear aplicaciones gráficas multiplataforma.
Forma parte del proyecto Qt for Python, que también incluye Shiboken6, un generador de bindings utilizado especialmente para exponer código C++ a Python.
PySide6 permite trabajar con dos grandes enfoques de interfaz: Qt Widgets, adecuado para aplicaciones desktop tradicionales, y Qt Quick/QML, más orientado a interfaces declarativas, animadas y adaptativas.
La instalación estándar se realiza con pip install pyside6. Las wheels proporcionadas incluyen las bibliotecas Qt necesarias, por lo que normalmente no es necesario instalar Qt por separado para comenzar.
A 3 de octubre de 2026, PySide6 6.11.2 constituye la última versión estable publicada en PyPI. Es compatible con Python 3.10 a 3.14.
Funcionalidades
Qt Widgets
Qt Widgets proporciona los componentes tradicionales de las aplicaciones desktop: ventanas, botones, menús, campos de entrada, tablas, árboles, diálogos o barras de herramientas.
Los widgets pueden ensamblarse directamente en Python o diseñarse visualmente con Qt Designer.
Este enfoque resulta especialmente adecuado para herramientas empresariales, editores, utilidades y aplicaciones desktop complejas.
Qt Quick y QML
PySide6 también permite utilizar Qt Quick y QML.
QML describe la interfaz mediante una sintaxis declarativa, mientras que Python puede gestionar lógica de negocio, datos y servicios.
Esta separación resulta adecuada para interfaces más visuales, animadas o que deben adaptarse a distintos tamaños de pantalla.
Los objetos Python pueden exponerse a QML para permitir la comunicación entre ambos entornos.
Signals y slots
Qt utiliza un mecanismo de signals y slots para permitir la comunicación entre diferentes objetos de una aplicación.
Un botón puede, por ejemplo, emitir un signal cuando se activa y ejecutar una función Python conectada a ese signal.
PySide6 también permite declarar signals, slots y propiedades Qt personalizados.
Este modelo limita las dependencias directas entre componentes y sigue siendo central en la arquitectura de aplicaciones Qt.
Designer y archivos .ui
Qt Widgets Designer, accesible especialmente mediante pyside6-designer, permite construir visualmente interfaces basadas en Qt Widgets.
Los archivos .ui generados pueden cargarse dinámicamente o convertirse en código Python con pyside6-uic.
Este enfoque permite separar una parte del trabajo de diseño visual de la lógica de la aplicación.
Recursos
Qt utiliza archivos .qrc para agrupar recursos como imágenes, iconos o archivos integrados en la aplicación.
pyside6-rcc convierte estos recursos para que puedan utilizarse desde el proyecto Python.
La herramienta pyside6-project puede automatizar la compilación de los archivos UI, recursos y QML necesarios para el proyecto.
Model/View
Qt proporciona una arquitectura Model/View adaptada a listas, tablas y árboles de datos.
Los datos se separan de su representación visual, lo que facilita especialmente las interfaces que manipulan grandes conjuntos de datos estructurados.
Pueden utilizarse modelos Qt existentes o sustituirse por modelos personalizados escritos en Python.
Red, multimedia y otros módulos Qt
PySide6 expone una gran parte de los módulos de Qt 6.
Una aplicación puede acceder a funciones de red, bases de datos, multimedia, WebEngine, Bluetooth, gráficos, impresión o Qt Quick 3D según los módulos instalados y su disponibilidad en la plataforma.
El paquete principal se apoya especialmente en PySide6 Essentials y PySide6 Addons para distribuir estos bindings.
Shiboken6
Shiboken6 complementa PySide6 proporcionando las herramientas necesarias para crear bindings entre C++ y Python.
Puede utilizarse cuando un proyecto dispone de una biblioteca o motor escrito en C++ que necesita ser controlado desde Python.
También se utiliza internamente para generar los bindings Qt proporcionados por PySide6.
Proyectos y pyproject.toml
pyside6-project proporciona varios comandos para crear, compilar, ejecutar y desplegar proyectos Qt for Python.
Desde PySide6 6.9, se recomienda el formato estándar pyproject.toml para describir los archivos y opciones del proyecto.
El antiguo formato .pyproject continúa siendo compatible por motivos de compatibilidad, pero actualmente está deprecado.
Despliegue desktop
pyside6-deploy facilita la creación de aplicaciones distribuibles para Windows, macOS y Linux.
La herramienta se apoya en Nuitka para compilar y empaquetar Python, PySide6, Qt y los recursos necesarios.
Según la plataforma, puede producir especialmente un ejecutable Windows, una aplicación macOS o un binario Linux.
También pueden utilizarse otras herramientas Python como PyInstaller o cx_Freeze según las necesidades del proyecto.
Android
PySide6 admite el despliegue hacia Android.
pyside6-android-deploy puede generar paquetes APK o AAB y preparar las dependencias Qt y Python necesarias.
Sin embargo, el proceso de despliegue móvil sigue siendo más complejo que el packaging desktop y requiere las herramientas Android adecuadas, especialmente SDK y NDK.
Casos de uso
Crear una aplicación desktop
PySide6 resulta adecuado para editores, gestores, herramientas técnicas, software empresarial o aplicaciones con numerosas ventanas e interacciones.
Qt Widgets proporciona una base especialmente completa para este tipo de software.
Construir una interfaz moderna con QML
Qt Quick y QML permiten desarrollar interfaces más gráficas o animadas manteniendo Python para la lógica de la aplicación.
Esta arquitectura resulta especialmente adecuada para dashboards, interfaces táctiles y aplicaciones destinadas a distintas resoluciones.
Desarrollar una herramienta Python con interfaz gráfica
Un proyecto Python existente puede utilizar PySide6 para añadir una verdadera interfaz gráfica sin trasladar su lógica de negocio a otro lenguaje.
Bibliotecas científicas, sistemas de procesamiento de archivos o herramientas de automatización pueden así integrarse en una aplicación gráfica.
Conectar Python y C++
Shiboken y los mecanismos de Qt permiten combinar una interfaz Python con bibliotecas C++ existentes.
Este enfoque resulta adecuado para aplicaciones que necesitan conservar componentes nativos o de alto rendimiento mientras utilizan Python para una parte del desarrollo.
Desarrollar para varios sistemas
Una misma base de código puede dirigirse a Windows, macOS y Linux, con posibilidades de despliegue también en Android.
Siguen siendo posibles adaptaciones cuando determinadas funciones o convenciones de interfaz difieren según la plataforma.
Conclusión
PySide6 permite utilizar el ecosistema Qt 6 directamente desde Python sin tener que reescribir la aplicación en C++.
Qt Widgets cubre las interfaces desktop tradicionales, mientras que Qt Quick/QML permite construir interfaces más declarativas y animadas.
Designer, el sistema de signals y slots, Shiboken y las herramientas de despliegue forman un entorno especialmente completo para desarrollar aplicaciones gráficas con Python.
Sin embargo, esta potencia implica comprender tanto los conceptos de Python como la arquitectura de Qt, además de las restricciones de packaging y licencias durante la distribución.
Para construir aplicaciones gráficas Python ricas y multiplataforma con un framework maduro, PySide6 constituye una de las principales soluciones disponibles.
Puntos de atención
-
PySide6 6.11.2 es la última versión estable publicada en PyPI a 3 de octubre de 2026.
-
PySide6 6.11.2 necesita Python 3.10 a 3.14.
-
Qt 6.12 LTS se publicó el 30 de septiembre de 2026, pero PySide6 6.12 todavía no constituye la versión estable publicada en PyPI en la fecha de verificación de esta ficha.
-
PySide6 se ofrece bajo licencias LGPLv3, GPLv2, GPLv3 y comercial de Qt. La posibilidad de distribuir una aplicación propietaria bajo LGPL depende del cumplimiento de las obligaciones de esta licencia.
-
Algunos módulos Qt no están disponibles bajo LGPL. Por tanto, conviene comprobar las licencias de los módulos realmente utilizados antes de distribuir una aplicación.
-
La licencia comercial constituye una alternativa, especialmente para proyectos que no desean o no pueden cumplir las obligaciones de las licencias open source aplicables.
-
Las wheels de PyPI ya incluyen las bibliotecas Qt necesarias. Normalmente no es necesario instalar Qt por separado para una instalación estándar.
-
El thread principal debe permanecer disponible para el event loop de la interfaz. Los procesos pesados deben organizarse para evitar bloquear la aplicación.
-
Las aplicaciones distribuidas pueden ser relativamente voluminosas, ya que incluyen Python, Qt y los módulos necesarios.
-
El soporte Android necesita una cadena de compilación específica y sigue siendo más complejo que el packaging desktop.
-
El soporte iOS llega con la generación de PySide6 asociada a Qt 6.12. Esta primera implementación todavía presenta varias limitaciones y no se utiliza como plataforma estable de referencia en esta ficha.
-
El formato histórico
.pyprojectestá deprecado. Los nuevos proyectos deberían utilizarpyproject.toml. -
Las actualizaciones de Qt pueden modificar las plataformas, módulos o condiciones de licencia disponibles. Conviene verificarlas antes de una actualización importante.