Qt 6.10 moderniza el desarrollo multiplataforma con más accesibilidad, datos integrados y animación vectorial
Qt 6.10 llega cargado de mejoras para desarrolladores de aplicaciones y creadores de dispositivos, con novedades que abarcan desde accesibilidad y diseño de interfaces hasta audio, gráficos y soporte de plataformas. Es una versión que facilita el día a día tanto si trabajas en QML y Qt Quick como si sigues con C++ y Qt Widgets.
Más allá de los titulares, hay cambios que impactan de forma directa en la productividad: un sistema de distribución tipo flexbox en Qt Quick, animación vectorial ampliada (SVG y Lottie), controles nuevos como SearchField y vías mucho más limpias para conectar datos de C++ con interfaces en QML. También hay avances en Android, macOS/iOS, Windows y Linux, y un buen puñado de pequeños grandes detalles en módulos como Qt Graphs, Qt Quick 3D, Qt Multimedia o Qt Core.
Accesibilidad y alto contraste en Qt 6.10
La accesibilidad da un salto importante: las estilos integrados de Qt ahora respetan de forma automática los ajustes de alto contraste del sistema en escritorio y móvil. Esto ayuda a mantener la coherencia visual con el resto del entorno y a cumplir normativas sin trabajo adicional.
Se ha revisado cómo se exponen los widgets de Qt y los controles de Qt Quick ante tecnologías asistivas (por ejemplo, lectores de pantalla), con una mejor integración con las plataformas subyacentes. El avance es especialmente notable en WebAssembly, y muchas de estas mejoras llegarán también a ramas LTS en próximas actualizaciones de mantenimiento.
Qt 6.10 construye interfaces más rápido
Qt Quick sigue evolucionando para iterar más deprisa, reducir código a medida y lograr UIs modernas y responsivas. En 6.10 debuta un nuevo layout tipo flexbox, se amplía la compatibilidad de animaciones vectoriales y aparece un control SearchField listo para usar.
Flexbox Layout para Qt Quick
Se incorpora FlexboxLayout como «tech preview», un sistema inspirado en el Flexible Box Layout de CSS que se integra con el mecanismo de layouts de Qt Quick (incluyendo propiedades adjuntas para configurar el comportamiento de cada ítem). Está pensado para componer interfaces responsivas en minutos y mantener un rendimiento sólido en ejecución.
Qt ya ofrecía varios layouts para interfaces adaptables, pero con FlexboxLayout es más sencillo acomodar distintos tamaños/aspectos de pantalla y mitigar variaciones de longitud de texto por internacionalización o preferencias de tipografía.
Gráficos vectoriales animados: SVG y Lottie
Tras varias versiones reforzando el soporte de gráficos vectoriales (Qt Quick Scene Graph, Qt Quick Shapes y mejora de SVG), en 6.10 se añade compatibilidad con animaciones vectoriales en imágenes tanto SVG como Lottie. El módulo Qt Lottie amplía el rango de archivos modernos soportados y, gracias a VectorImage, es posible renderizar Lottie como vector escalable y acelerado por hardware.
Además, se incorpora la herramienta lottietoqml para convertir ficheros Lottie en escenas de Qt Quick directamente en QML, complementando al flujo que en su día inauguró svgtoqml.
Nuevo control Qt Quick: SearchField
SearchField es un campo de entrada especializado para búsquedas, con estilos integrados y apariencia nativa en plataformas principales. Muestra sugerencias relevantes en un desplegable filtrado conforme escribes, y se alimenta de modelos que puedes suministrar por las rutas habituales de datos en QML.
Esta pieza encaja especialmente bien con las mejoras de intercambio de datos entre código C++ y UIs Qt Quick: la novedad en 6.10 hace más sencillo conectar modelos de C++ con controles como SearchField sin recurrir a plantillas verbosas.
Integra tus datos en QML con menos fricción gracias a Qt 6.10
Qt ofrece múltiples mecanismos para unir la lógica de C++ con la presentación en QML (singletons, QAbstractItemModel, propiedades de contexto, objetos QObject, etc.), y herramientas como Qt Creator 8. Aun así, levantar una integración bidireccional completa podía exigir demasiado código repetitivo. En Qt 6.10 esa barrera se reduce con nuevas API y tipos pensados para el trabajo real.
QRangeModel
Llega QRangeModel, una implementación ligera de QAbstractItemModel para exponer rangos de C++ como std::vector, std::array o cualquier contenedor iterable directamente a vistas en Widgets y a vistas QML/Qt Quick. Funciona con valores simples (p. ej., int) y tipos más complejos (Q_GADGET o std::tuple), generando roles apropiados sin escribir el modelo a mano.
Si usas gadgets, QRangeModel expone cada propiedad como rol con nombre, de modo que los delegados QML pueden vincularse con required properties de forma tipada. En la práctica, te quitas de encima la gestión manual de roles o el abuso de propiedades de contexto, y todo encaja con QML compilado.
delegateModelAccess: escritura directa desde el delegado
Hasta ahora, para escribir en el modelo desde un delegado solías requerir el objeto model o usar propiedades de contexto. Con 6.10 basta con activar delegateModelAccess en modo ReadWrite para que los delegados puedan escribir a través de required properties de manera natural.
La nueva capacidad funciona en todas las vistas de Qt: Instantiator, Repeater, ListView, GridView, TableView, TreeView, MapItemView y Repeater3D. Componer UIs editables resulta así más predecible y coherente con las buenas prácticas de QML.
Synchronizer: sincronización de varias propiedades
Muy solicitado durante años, el elemento Synchronizer debuta para asegurar que varias propiedades comparten el mismo valor siempre que sea posible, sin romper vínculos en ninguna de ellas. Antes solía combinarse una binding con un manejador de señales, y funcionaba mejor en controles implementados en C++.
Con Synchronizer todo se reduce a un único elemento que soporta n propiedades y tanto objetivos en C++ como en QML. Está disponible en el módulo Qt.labs.synchronizer y llega como Tech Preview.
TreeModel en QML
Exponer datos en árbol a Qt Quick solía pasar por implementar QAbstractItemModel. QRangeModel lo simplifica desde C++, pero a veces quieres declarar el árbol directamente en QML para prototipos o conjuntos de datos pequeños. Para eso aparece el tipo QML TreeModel.
Con TreeModel defines nodos con sintaxis de arrays y diccionarios al estilo JSON, asignas pares clave-valor a cada ítem, y los usas en vistas como TreeView sin escribir infraestructura compleja. Permite iterar la UI a gran velocidad antes de llevar la estructura a C++ si lo necesitas.
SortFilterProxyModel en QML
En el lado C++ llevamos años usando QSortFilterProxyModel. Qt 6.10 trae su contrapartida declarativa a QML para ordenar y filtrar datos con una API amiga de las bindings. Incluye sorters por rol (como RoleSorter) y filtros por función reactivos (que puedes invalidar) para mantener listas y tablas al día.
La idea es que puedas componer pipelines de clasificación y filtrado directamente en QML, con código conciso y expresivo, sin sacrificar rendimiento ni claridad.
Mantén tu producto moderno con Qt 6.10
Los sistemas evolucionan y los usuarios esperan que sus apps funcionen en los dispositivos y versiones más recientes. En 6.10 hay emocionantes mejoras por plataforma que facilitan esa continuidad, como muestran proyectos derivados de Qt como LXQt 2.0.
Android: soporte actual y herramientas nuevas
Qt 6.10 anuncia soporte oficial para Android 15 y 16, con ajustes en el build system y compatibilidad con páginas de 16 KB. Esto te permite apuntar a hardware actual sin sobresaltos, manteniendo estabilidad y rendimiento.
Debuta Qt Jenny 1.0, un generador de código que produce el pegamento JNI a partir de clases Java anotadas. Consta de compilador y annotation processor, generando APIs de Qt C++ basadas en QJniObject para acceder a servicios nativos como BatteryManager, PowerManager o AudioManager; incluso simplifica notificaciones, que suelen ser complejas vía JNI. Está disponible en Maven Central y viene con ejemplos en Qt Creator y documentación online.
También se ha pulido el manejo del splash screen desde Android 12, evitando dobles pantallas de bienvenida. El enfoque recomendado pasa por usar una SplashActivity dedicada, ajustar temas con translucidez y lanzar la actividad Qt cuando Android esté listo, logrando una transición fluida.
macOS e iOS 26
Primera versión menor que llega tras la disponibilidad de macOS 26 «Tahoe». El nuevo diseño Liquid Glass y cambios en la arquitectura de renderizado planteaban desafíos que Qt ha resuelto para ofrecer soporte completo. Muchas mejoras se retroportarán a ramas LTS (6.8 y 6.5) en próximos parches.
Windows: Qt WebView con WebView2
Qt WebView incorpora una implementación basada en WebView2 para usar Microsoft Edge como motor. Así puedes incrustar contenido web con el navegador nativo del sistema y desplegar en Windows sin arrastrar Qt WebEngine, aligerando la huella.
Linux y multimedia
Qt Multimedia añade backend nativo para PipeWire, con mejor latencia y control para procesamiento de contenido y hardware (por ejemplo, aplicaciones como Mixxx 2.5), además de soporte más fino en entornos contenedorizados. Se suma compensación de tono de audio para mantener calidad al acelerar o ralentizar pistas.
Hardware embebido
En dispositivos, Boot to Qt adopta Yocto 5.2 «Walnascar» y aparecen adaptaciones para placas Ezurio Nitrogen. El objetivo: acelerar la llegada al mercado sobre hardware moderno, con stacks actualizados.
Otras mejoras destacadas de Qt 6.10
Qt Quick 3D ahora permite hornear lightmaps con facilidad para subir calidad con alto rendimiento, y ejecutar efectos de partículas en sentido inverso, útil para simular lluvia o nieve que impacta sobre tus modelos.
Qt Graphs incorpora un nuevo «filled surface» para superficies rellenas, mejor soporte multi-eje, z-order personalizable en 2D y la opción de renderizar un corte de un gráfico 3D a imagen imprimible. Además, se añade un nuevo gráfico de superficie rellena a su catálogo.
En Qt Widgets, crear delegados personalizados resulta más sencillo y el control de arrastrar y soltar en vistas de ítems es más granular. Los layouts permiten configurar restricciones de tamaño de forma individual.
El teclado virtual incluye ahora distribución letona, ampliando la cobertura idiomática. Y en Qt Core se han pulido APIs para trabajar con locales, documentos XML y cadenas de continuación.
En Qt GUI, el backend QRhi añade enumeración de adaptadores 3D cuando se usa Direct3D 11/12 o Vulkan, facilitando elegir GPU en equipos con múltiples tarjetas.
Se han introducido mejoras de rendimiento en QGrpcHttp2Channel, lo que beneficia a aplicaciones que usan gRPC sobre HTTP/2 en escenarios exigentes.
Más en Qt 6.10
Wayland recibe gestión de sesión, pieza clave para integraciones de escritorios modernos, y se añaden notificaciones de reseteo gráfico útiles para componentes como los compositores (por ejemplo, KWin).
Qt WebEngine incorpora soporte de extensiones de Chromium, una demanda histórica de usuarios de navegadores basados en QtWebEngine. Esto abre la puerta a que proyectos como Falkon puedan usar el mismo ecosistema de extensiones que ya utilizas en Chromium.
Además del soporte directo de Lottie en VectorImage, la herramienta lottietoqml simplifica llevar animaciones al mundo QML, ampliando el arsenal creativo sin renunciar a rendimiento.
Qt 6.10 es un paso importante para desarrollar interfaces más accesibles y modernas, integrar datos de C++ en QML con menos fricción, y desplegar en las últimas plataformas sin quebraderos de cabeza; todo ello mientras suma detalles prácticos en multimedia, gráficos y núcleo que se notan tanto en el rendimiento como en la calidad final del producto. Si llevas Qt en tu pila, esta actualización merece un hueco en tu hoja de ruta.