Novedades de Qt 6.4
Módulos nuevos y restaurados en Qt 6.4
Qt 6.4 añade los siguientes módulos:
- Qt HTTP Server - Un módulo para incrustar un servidor HTTP en aplicaciones Qt. Este módulo se encuentra en fase de previsualización tecnológica, por lo que no se garantiza la estabilidad de la API y la ABI.
- Qt Quick 3D Physics - Un módulo QML de alto nivel que añade capacidades de simulación física a Qt Quick 3D.
Qt 6.4 reintroduce el módulo de Qt 5. Qt TextToSpeech de Qt 5. Este módulo no estaba presente en Qt 6.3. Ahora utiliza el sistema de compilación CMake y funciona con Qt 6.
Encontrarás más detalles sobre los cambios en cada módulo en Cambios en los módulos Qt en Qt 6.
Nuevas características en Qt 6.4
Qt Core Módulo
- Añadido QLatin1StringView como alias de QLatin1String. Este es ahora el nombre recomendado para referirse a una vista de cadena Latin-1.
- Los constructores
QLatin1StringView(const char *, qsizetype)yQLatin1StringView(const char *, const char *)se hacen no explícitos. - Se ha añadido el operador literal
_L1para crear cadenas y caracteres literales Latin-1 en el espacio de nombres Qt::Literals::StringLiterals. - Se añaden los operadores literales
_sy_bapara crear literales QString y QByteArray respectivamente, en el espacio de nombres Qt::Literals::StringLiterals. Obsoletos_qsy_qbaen favor de_sy_ba. - Desaprobados QString::count() y QByteArray::count() que no toman parámetros, para evitar confusiones con las sobrecargas de algoritmos del mismo nombre. Pueden sustituirse por los métodos
size()olength(). - QStringEncoder y QStringDecoder soportan ahora todos los codecs soportados por ICU cuando Qt se construye con el soporte ICU activado.
- En las clases para Android y desarrollo JNI, QJniObject y QJniEnvironment, se han añadido sobrecargas para callMethod, findMethod y métodos similares. Ahora es posible llamar a funciones Java y registrar métodos nativos sin especificar una cadena de firma.
- La nueva función de plantilla QJniObject::construct() permite instanciar una clase Java desde C++ sin especificar un tipo o cadena de firma.
- QByteArray dispone ahora de un método de instancia percentDecoded() como alternativa a la llamada al método estático fromPercentEncoding() en la instancia.
- QTextStream ahora soporta entrada y salida de char16_t.
- QStringView ahora tiene un método localeAwareCompare() y puede contar() cuántas veces aparece una subcadena dada.
- QDate ahora puede construirse a partir de varios tipos de estructura std::chrono año-mes-día, cuando esté disponible, y tiene un addDuration() que toma un std::chrono::days, cuando esté disponible.
- QDateTime Igualmente gana un addDuration(std::chrono::milisegundos), junto con aritmética para sumar o restar del mismo tipo, una diferencia de valores QDateTime devolviéndolo, y unos cuantos pseudo-constructores estáticos tomando varios tipos std::chrono describiendo un momento en el tiempo.
- Añadido QTimeZone::fromStdTimeZonePtr(const std::chrono::time_zone *).
- QCalendarLa construcción por nombre de std::chrono ahora acepta QAnyStringView.
Qt GUI Módulo
- Añadidos QTextDocumentFragment::toMarkdown(), QTextDocumentFragment::fromMarkdown(), y QTextCursor::insertMarkdown().
Qt Quick Módulo
- Se han añadido varias propiedades y funciones nuevas a TableView que mejoran el soporte para la navegación y selección por teclado, selecciones de filas y columnas, animaciones, posicionamiento de subceldas, etc.
- TreeView ahora soporta selecciones, y ha ganado una API más amplia para expandir y colapsar nodos en el árbol recursivamente.
- QQuickWidget ahora funciona con todas las API de gráficos 3D compatibles (Vulkan, Metal, Direct3D 11) además de OpenGL. Las aplicaciones ya no tienen que forzar el renderizado con OpenGL cuando utilizan QQuickWidget.
- Se ha añadido compatibilidad con matrices de muestreadores de imágenes combinadas en sombreadores utilizados con materiales personalizados. Esto es posible gracias a la nueva función QSGMaterialShader::combinedImageSamplerCount() y a la semántica mejorada del argumento existente
texturede QSGMaterialShader::updateSampledImage(). - Se ha añadido soporte para cambiar el modo de rasterización de polígonos de
solidalineen QSGMaterialShader::GraphicsPipelineState() (disponible sólo cuando la API 3D en uso lo admite). - ShaderEffectSource.format y layer.format no eran útiles en versiones anteriores de Qt 6, ignorándose en la práctica los valores heredados. Esto está ahora documentado y se han introducido nuevos valores realmente útiles, en particular para permitir solicitar texturas de coma flotante (FP16 o FP32) en lugar de RGBA8, si se desea.
- Se ha añadido QQuickRenderTarget::fromPaintDevice(), que permite redirigir la salida de un QQuickWindow utilizando también el backend
software. - Se han añadido sobrecargas en QQuickRenderTarget que permiten especificar el formato nativo de la textura o del objeto imagen. Esto es relevante en algunos casos de uso avanzado cuando se tiene que trabajar con texturas nativas que no son RGBA8. Nótese que sólo se aceptan los formatos nativos soportados por la infraestructura de renderizado de Qt.
- Añadido setMirrorVertically() a QQuickRenderTarget, que permite solicitar al renderizador Qt Quick que altere sus matrices para obtener resultados volteados verticalmente al redirigir el renderizado basado en la API 3D a una textura.
- Qt Quick windows intentará ahora utilizar la plataforma de rasterización por software de Direct 3D (WARP) en caso de que el dispositivo gráfico principal no sea compatible con Qt, sin tener que recurrir a la configuración manual de variables de entorno.
- Se ha añadido una heurística simple al bucle de renderizado
threadeddel scenegraph Qt Quick para reconocer el estrangulamiento basado en vsync roto. Cuando los fotogramas se renderizan/presentan demasiado rápido, sin bloquear el hilo de renderizado, ahora cambia automáticamente al enfoque regular basado en temporizador de ejecución de animaciones, evitando así que las animaciones QML se ejecuten demasiado rápido. - Se ha añadido FrameAnimation para animaciones personalizadas. Permite ejecutar scripts personalizados en sincronización con los fotogramas de animación.
Qt Quick Controls Módulo
- Añadido un nuevo estilo de aspecto nativo para iOS, iOS Style, como Tech Preview.
- TreeViewDelegate tiene tres nuevas propiedades que describen si está actual, seleccionado o resaltado en TreeView.
Qt Quick Dialogs Módulo
- Añadido ColorDialog. Este es un diálogo nativo en plataformas que lo soportan, y un diálogo no nativo Qt Quick en otras plataformas.
El diálogo no nativo soporta todos los estilos no nativos: Basic, Fusion, Imagine, Material y Universal.
Qt Widgets El módulo
- QFormLayout tiene nuevas funciones miembro isRowVisible() y setRowVisible(), con sobrecargas que permiten ocultar y mostrar filas por índice, widget de entrada o disposición de filas.
- QKeySequenceEdit tiene una nueva propiedad clearButtonEnabled. Úsala para controlar si el widget muestra un botón de borrado que permita al usuario borrar la edición.
- QWizard tiene una nueva ranura, setCurrentId, que permite a las aplicaciones moverse a una página sin visitar las páginas entre la página actual y la de destino.
Qt Network Módulo
- Se ha añadido QSslServer. Esto simplifica la creación de un servidor que sólo se comunica a través de TLS.
- QNetworkInformation ahora tiene loadBackendByFeatures(Features) y loadBackendByName(QStringView), destinadas a reemplazar eventualmente las correspondientes funciones sobrecargadas load(Features/QStringView) que ahora están marcadas como obsoletas.
Qt Test Módulo
- QTestEventLoop::enterLoopMSecs() utiliza ahora un PreciseTimer si el tiempo de espera es inferior a un segundo.
- Las implementaciones personalizadas de QTest::compare() ahora deberían revisar cualquier llamada a QTest::compare_helper() para usar una de las dos nuevas sobrecargas en lugar de la antigua, que ahora está obsoleta (para que sólo se generen las cadenas para representar valores en un informe de fallo si la comprobación realmente falla).
- Se ha añadido QAbstractItemModelTester::setUseFetchMore().
- Las nuevas macros QCOMPARE_{EQ,NE,GT,GE,LT,LE}() soportan comparaciones con informes similares a los de QCOMPARE(). La de EQ hace comparaciones exactas, sin las personalizaciones de QCOMPARE(). También vienen con las variantes habituales QTRY_COMPARE_*() y QTRY_COMPARE_*_WITH_TIMEOUT().
Módulo Qt Qml
- Lenguaje QML
- Ahora se pueden registrar tipos de valores personalizados con nombres. Es decir, el argumento de QML_VALUE_TYPE ya no se ignora. Debe estar en minúsculas. Una vez registrados, puedes declarar propiedades de tus propios tipos de valor en QML.
- Ahora puede almacenar cualquier tipo de valor con nombre en una lista en QML. Por ejemplo, list<rect> en QML es como QList<QRectF> en C++. Esto elimina la necesidad de utilizar var para tales propiedades o envolver sus elementos en objetos.
- El nuevo pragma ComponentBehavior permite especificar si los componentes definidos en un archivo QML pueden utilizarse fuera de su contexto de creación. En caso negativo (pragma ComponentBehavior: Bound), el compilador Qt Quick puede optimizar mejor el código.
- Sistema de módulos
- Directiva
importmejorada en archivos qmldir con soporte para importaciones por defecto, permitiendo a los módulos especificar importaciones que qmllint debería asumir a pesar de ser opcionales.
- Directiva
- Compilador de tipos QML (qmltc)
- Cobertura ampliada del lenguaje QML
- Compilador de scripts QML (qmlsc, qmlcachegen)
- Varias operaciones sobre listas de tipos de valores se compilan ahora en C++.
- El código muerto y los almacenes muertos se optimizan ahora de forma más agresiva.
- Las conversiones de tipo ahora ocurren en el lugar donde se escribe un valor, no en el lugar donde se lee. Si el valor se lee varias veces, esto es más rápido.
- Linter QML (qmllint)
- Añadido soporte de plugins a qmllint para permitir diagnósticos y comportamientos específicos del módulo.
- Añadidas nuevas advertencias sobre el uso correcto de QtQuick y QtQuick.Controls
- QML Language Server (qmlls)
- Añadido soporte para compleciones
- Añadida corrección de acciones de código para algunas advertencias/indicaciones de linter
- Movido el ejecutable a libexec
- Limpiado CMake API:
- qt_target_compile_qml_to_cpp() usada para invocar el compilador de tipos QML está obsoleta. Su funcionalidad se ha integrado en qt_add_qml_module()
Qt Quick Módulo 3D
- Añadida una vista previa del soporte lightmap baking. Esto proporciona una solución de iluminación global estática con lightmaps pre-generados usando raytracing. Ver Lightmaps e Iluminación Global para más detalles.
- Añadido SpecularGlossyMaterial para permitir el uso del flujo de trabajo especular/brillo en lugar de metal/rugosidad.
- Añadido el tipo LineParticle3D que permite crear partículas sprite con forma de línea.
- Añadida la propiedad Model.castsReflection para controlar si un modelo es renderizado por sondas de reflexión y si puede ser visto en reflexiones. También se introduce la misma propiedad para sprite particles.
- Añadida la propiedad ReflectionProbe.boxOffset para mover la caja relativa a la posición de la sonda sin afectar a la posición del punto de captura.
- Añadida la propiedad ReflectionProbe.debugView para mostrar un cubo visualizando la caja de la sonda.
- Se ha añadido la propiedad HeightFieldGeometry para permitir la creación de una geometría de campo de altura a partir de un archivo de imagen.
- Se ha añadido CubeMapTexture para permitir que los materiales personalizados y los efectos de post-procesado funcionen con texturas de mapa de cubo en los shaders. La entrada es un contenedor
.ktxcon datos de imagen para las 6 caras, o 6 archivos de imagen individuales. - Se ha añadido soporte para renderizar un skybox a partir de un cubemap en lugar de la sonda de luz. Esto puede solicitarse configurando el modo de fondo SceneEnvironment.SkyBoxCubeMap.
- Añadido ProceduralSkyTextureData para generar proceduralmente una sonda de luz HDR o una textura de caja celeste.
- Se ha mejorado el renderizado de sombras para luces puntuales y puntuales.
- Añadida la propiedad renderFormat a View3D para permitir especificar el formato de la textura de fondo cuando View3D está usando su modo de renderizado (por defecto) Offscreen. Los valores disponibles son los mismos que en ShaderEffectSource.format (que también se ha revisado en 6.4). Esto permite utilizar texturas de punto flotante en lugar de las RGBA8 por defecto.
- Se ha eliminado el soporte para importar archivos UIP. El mapeo de las antiguas características de Qt 3D Studio a Qt Quick 3D ya era problemático en versiones anteriores. Por lo tanto, Qt 6.4 elimina el soporte para archivos
.uipde la herramientabalsam.
Módulo de conectividad Qt
- QNdefMessage ya no se exporta. Esta clase hereda QList públicamente, pero QList no está diseñada para ser heredada por una clase exportada.
Advertencia: Esto no es compatible con versiones anteriores, pero evitará futuras rupturas de BC en el futuro.
- En Qt Bluetooth varios enums de error se extienden con nuevos códigos de error que representan un error de permisos faltantes. Actualmente estos códigos se utilizan en Android y macOS/iOS. Véase QBluetoothLocalDevice::MissingPermissionsError como ejemplo.
Qt WebEngine Módulo
- API de acceso al sistema de archivos HTML5, controlada por QWebEngineFileSystemAccessRequest
- QWebEngineLoadingInfo códigos de error mejorados, en particular para los errores HTTP
- QWebEngineView::setPage() funciona ahora en páginas ya cargadas
- QWebEngineSettings::NavigateOnDrop añadido para permitir deshabilitar la navegación al arrastrar y soltar URLs
- QWebEngineUrlRequestInfo::ResourceTypeWebSocket añadido para permitir la interceptación de conexiones websocket
Cambios en la plataforma
WebAssembly
Qt es ahora totalmente compatible con la plataforma WebAssembly. Consulte la documentación de la plataforma en Qt para WebAssembly para más detalles.
Plataformas móviles
Android
- Actualizado Gradle a 7.4.2 y Android Gradle Plugin a 7.2.1.
- Actualizado NDK a r23b (23.1.7779620).
- Añadidas las variables CMake QT_ANDROID_SIGN_APK y QT_ANDROID_SIGN_AAB para construir paquetes firmados directamente desde CMake.
- Accesibilidad Android es ahora consciente de los eventos de desplazamiento.
- Mejora de la velocidad de carga de activos para aplicaciones Android.
Plataformas integradas
Boot to Qt
- Boot to Qt Se actualizó la pila para usar Yocto 4.0.3 (kirkstone).
- NXP i.MX8M Plus LPDDR4 EVK añadido como nuevo dispositivo de referencia.
QNX
- Se ha añadido compatibilidad con Qt Multimedia.
WebOS
- Se ha verificado que Qt 6.4 funciona con LG webOS OSE 2.18.0(Qt para webOS).
Lista de cambios en la API
Estas páginas contienen una visión general de los cambios de la API en Qt 6.4:
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.