En esta página

Novedades de Qt 6.6

Módulos nuevos y restaurados en Qt 6.6

Qt 6.6 añade los siguientes módulos y herramientas:

Módulos nuevos y restaurados en Technology Preview

Nota: No se garantiza la estabilidad de la API y la ABI.

Qt Graphs Módulo

Qt Graphs es el módulo que sustituye a Qt Data Visualization. Utiliza Qt Quick 3D como motor de renderizado para proporcionar soporte para backends gráficos nativos, en lugar de depender de OpenGL 2.1, como hace Qt Data Visualization.

El módulo proporcionará la mayoría, si no toda, la funcionalidad de Qt Data Visualization. Algunas características avanzadas pueden estar incompletas en la Technology Preview.

Nuevas funciones de Qt 6.6

Qt Core Módulo

  • Añadida la macro Q_NODISCARD_CTOR que debe aplicarse para marcar los constructores nodiscard. La macro resuelve a [[nodiscard]] en compiladores que lo soportan, y no hace nada en otros compiladores.
  • Añadidas sobrecargas assign() a los siguientes contenedores Qt: QVarLengthArray, QList, QByteArray y QString. Estas funciones son una forma conveniente de asignar nuevos datos mientras se reutiliza la existente capacity().
  • Puede omitir el contenido de cualquier archivo añadido al sistema de archivos de recursos especificando la propiedad de archivo fuente QT_DISCARD_FILE_CONTENTS en CMakeLists.txt. Los nodos del archivo se mantendrán. Al escribir manualmente archivos .qrc se puede lograr el mismo efecto estableciendo el atributo empty de un nodo XML file a true.
  • QFileInfo tiene una nueva función miembro readSymLink() que devuelve la ruta sin procesar, y nuevas sobrecargas que toman un QTimeZone para funciones relacionadas con marcas de tiempo.
  • La estructura QProcess::UnixProcessParameters y el enum QProcess::UnixProcessFlag pueden utilizarse en la nueva función miembro QProcess::setUnixProcessParameters() para modificar ajustes y parámetros específicos de Unix de un proceso hijo, como el cierre de descriptores de archivo extraños.
  • La nueva clase QNativeIpcKey contiene una clave nativa utilizada por QSharedMemory y QSystemSemaphore, proporcionando un mejor soporte para aplicaciones sandboxed en plataformas Apple. Ver Claves IPC nativas para más información.
  • La mayoría de las APIs de Qt que trabajan con intervalos de tiempo han sido portadas a los tipos de datos relevantes de std::chrono.
  • QXmlStreamReader::hasStandaloneDeclaration() informa de si el documento tiene una declaración independiente explícita.

Qt GRPC Módulo

  • Añadidos QGrpcChannelOptions y QGrpcCallOptions. Son los nuevos métodos para pasar opciones a canales y llamadas.
  • Añadido QGrpcMetadata para pasar metadatos adicionales a las llamadas.
  • Integrado soporte QML-types para las clases QtGRPC autogeneradas.

Qt GUI Módulo

  • Añadido QFont::setFeatures() para acceso directo a las características OpenType de la fuente.
  • QPalette ahora tiene una entrada de color accent() que usa el color de acento del sistema por defecto.
  • La familia de clases QRhi están ahora completamente documentadas y se ofrecen como APIs con una promesa de compatibilidad limitada. La interfaz de hardware de renderizado de Qt es una API de gráficos 3D y una capa de abstracción del lenguaje de sombreado que utilizan módulos como Qt Quick y Qt Quick 3D para implementar motores de renderizado y sistemas de materiales multiplataforma y portátiles que pueden funcionar sobre Direct 3D 11/12, Vulkan, Metal, OpenGL y OpenGL ES. Las aplicaciones que deseen realizar su propio renderizado de bajo nivel sin depender directamente de API 3D y lenguajes de sombreado potencialmente específicos de cada plataforma pueden ahora utilizar QRhi y las clases relacionadas para aumentar una escena de Qt Quick, renderizar en QWindow, realizar renderizado fuera de pantalla en una textura o enviar cargas de trabajo de cálculo de GPU. En versiones anteriores de Qt 6, las clases QRhi eran totalmente privadas y la documentación no formaba parte del conjunto de documentación estándar de Qt. Ahora son tratadas de forma similar a las clases QPA (QPlatform*), lo que significa que forman un conjunto especial de clases que no ofrecen todos los patrones estándar y promesas de compatibilidad fuente/binario de las APIs públicas de Qt, pero que sin embargo están disponibles para su uso por desarrolladores de aplicaciones de nivel intermedio/avanzado. La documentación de las API de QRhi forma parte ahora de la documentación estándar de Qt. También se ha introducido el ejemplo rhiwindow.
  • Añadido un backend Direct 3D 12 para QRhi. Esto no afecta actualmente a ninguna aplicación, ya que Qt Quick's y QQuickWidget's por defecto backend elección sigue siendo Direct 3D 11 en Windows, y esto no se espera que cambie en un futuro previsible tampoco. El nuevo backend D3D12 debe considerarse experimental por el momento, y es útil principalmente para aplicaciones que necesitan que Qt realice su renderizado mediante Direct 3D 12 para simplificar la interoperabilidad con el motor de renderizado o cálculo de la propia aplicación o de algún componente externo que requiera D3D12.
  • Las aplicaciones Qt 6 ahora pueden soportar formatos de portapapeles personalizados o específicos de la plataforma, utilizando las nuevas clases QUtiMimeConverter (para macOS) y QWindowsMimeConverter para Windows). Estas clases son versiones unificadas de los tipos QMacPasteboardMime y QWindowsMime de Qt 5. Consulte la guía de portabilidad para obtener ayuda con la adaptación de una implementación existente.
  • QTextListFormat::setStart() permite que una lista de texto comience con un índice distinto de 1.

Qt Location Módulo

  • Los elementos del mapa se muestran ahora de forma más correcta, incluidos los que rodean el globo terráqueo o contienen agujeros.
  • Los elementos del mapa pueden representarse ahora utilizando diferentes superficies de referencia. El enum QLocation::ReferenceSurface proporciona las opciones Map y Globe, que pueden utilizarse con las propiedades referenceSurface en los tipos de elementos para controlar si un elemento se representa en un mapa plano o sigue la curvatura del globo.
  • La rueda del ratón puede cambiar bearing cuando se mantiene pulsado el modificador Shift, o cambiar tilt cuando se mantiene pulsado el modificador Control.

Qt Multimedia Módulo

  • La biblioteca Qt Multimedia ya no solicita permisos de audio o vídeo, sino que sólo comprueba si se proporcionan o no. Las aplicaciones cliente deben solicitar los permisos utilizando la API de permisos C++ o QML.
  • La nueva clase QWindowCapture añade soporte para capturar vídeos de ventanas individuales de aplicaciones de escritorio dentro de un QMediaCaptureSession. El vídeo grabado puede dirigirse a cualquier tipo de salida de vídeo, por ejemplo al QMediaRecorder o al QVideoWidget. La captura de ventanas sólo es compatible con el backend FFmpeg.
  • QMediaRecorder se ha ampliado con propiedades que permiten controlar mejor la calidad, la resolución y la velocidad de bits del vídeo.

Qt PDF Módulo

Qt Positioning Módulo

  • La biblioteca Qt Positioning ya no solicita los permisos de ubicación, sino que sólo comprueba si se proporcionan o no. Las aplicaciones cliente deben solicitar los permisos utilizando la API de permisos C++ o QML.

Qt Protobuf Módulo

  • Habilitado el uso de ciertos tipos Qt Core y Qt GUI como parte del esquema *.proto.
  • Soporte integrado de tipos QML para clases QProtobufMessage autogeneradas.
  • Migrado a los datos compartidos implícitamente para las clases QProtobufMessage autogeneradas. Esto permite acceder a los tipos de mensaje por-valor desde un contexto QML sin hacer muchas copias.
  • Añadido el soporte Qt Protobuf Well-Known Types para el tipo google.protobuf.Any.
  • Soporte integrado para el tipo oneof, un tipo similar a la unión en protobuf, que no necesita contener un valor.

Qt Bluetooth Módulo

  • La biblioteca Qt Bluetooth ya no solicita los permisos bluetooth, sino que sólo comprueba si se proporcionan o no. Las aplicaciones cliente deben solicitar los permisos utilizando la API de permisos C++ o QML.
  • Qt proporciona ahora un tipo nativo de 128-bit unsigned int como quint128. En las plataformas que lo soportan, el constructor QBluetoothUuid(quint128) y el método QBluetoothUuid::toUInt128() utilizan ahora este tipo en lugar de una estructura personalizada que utilizaban las versiones anteriores de Qt. Mientras tu código trate a quint128 como un tipo opaco, el cambio es compatible con código fuente y binario, pero considera usar las nuevas sobrecargas tomando QUuid::Id128Bytes si encuentras algún problema. Las plataformas que no soportan los tipos int de 128 bits (como MSVC) siguen utilizando el struct personalizado de Qt Bluetooth.

Módulo Qt Qml

  • Añadido soporte para la gestión de permisos de aplicación a través de QML. El módulo Qt Qml Core expone la funcionalidad de Qt C++ Application Permissions a QML a través de un conjunto de tipos de permisos que pueden utilizarse para comprobar o solicitar permisos de forma multiplataforma. Consulte Permisos de aplicación QML para obtener más información.
  • El objeto XMLHttpRequest se ha actualizado con dos características más, para acercarlo a los navegadores modernos. Se ha añadido la propiedad responseURL, que puede utilizarse para confirmar si se ha producido alguna redirección. Del mismo modo, se ha añadido el método overrideMimeType, que puede utilizarse para hacer que el objeto XMLHttpRequest analice la respuesta basándose en un tipo mime específico, en lugar de en lo que aparece en la cabecera Content-Type de la respuesta.
  • El QML Language Server ha obtenido soporte inicial para los usos de go-to definition y find. También admite el formateo completo de documentos.
  • Ahora es posible ampliar qmllint con plugins. La API de plugins se encuentra actualmente en vista previa técnica.

Qt Quick Módulo

  • Se ha añadido la propiedad font.features para acceder directamente a las características OpenType de la fuente.
  • TableView tiene una propiedad selectionMode para controlar si se pueden seleccionar celdas individuales o múltiples.
  • TreeView tiene una propiedad rootIndex para mostrar sólo un subárbol del modelo.
  • AnimatedImage ahora soporta la propiedad sourceSize.
  • La variable de entorno QT_QUICK_FLICKABLE_WHEEL_DECELERATION permite personalizar la desaceleración tras el desplazamiento con una rueda de ratón "clicky". Por defecto, la aceleración está ahora desactivada para que la distancia de desplazamiento sea proporcional al número de "clics" (a menos que la plataforma proporcione su propia aceleración); pero puedes establecer un valor inferior a 15000 para restaurar el comportamiento antiguo. La propiedad flickDeceleration ahora sólo se aplica a los gestos táctiles.
  • La mayoría de las propiedades son ahora FINALES, lo que significa que ya no se les puede hacer sombra declarando nuevas propiedades con los mismos nombres. Se emitirá una advertencia si se hace sombra a una propiedad FINAL. Recomendamos a los usuarios que cambien el nombre de dichas propiedades para evitar cambios de comportamiento inesperados.
  • Se han añadido y expuesto varias funciones relacionadas con QRhi en QQuickWindow, QQuickRenderControl y QSGTexture. Se ha simplificado la consulta de QRhi, QRhiSwapChain, o QRhiCommandBuffer utilizada por la representación en pantalla o fuera de pantalla Qt Quick. Se han hecho visibles algunas funciones que antes estaban ocultas en la documentación por depender de clases QRhi* . Añadido createTextureFromRhiTexture() a QQuickWindow que sirve como contrapartida de createTextureFromImage().
  • Se han actualizado los ejemplos de scenegraph: se ha añadido rhiunderqml, se ha sustituido el ejemplo fboitem heredado y exclusivo de OpenGL por un nuevo ejemplo portable rhitextureitem y se ha actualizado el ejemplo customrendernode. Todo ello demuestra las tres formas de ampliar una escena Qt Quick con renderizado 2D/3D personalizado de bajo nivel (los tres enfoques son: underlay/overlay, custom item backed by rendering to a texture, custom item with QSGRenderNode).
  • Se ha añadido la propiedad Path::simplified para la simplificación automática de rutas antes de renderizarlas. Esto refleja la función QPainterPath::simplified().
  • Se ha añadido soporte para recopilar marcas de tiempo de GPU para el renderizado de QQuickWindow. Cuando se activa mediante QQuickGraphicsConfiguration's setTimestamps() o la variable de entorno correspondiente, los tiempos del lado de la GPU aparecerán en la salida de depuración impresa al activar categorías de registro como qt.scenegraph.time.renderloop, y en el elemento DebugView de Qt Quick 3D, complementando los tiempos del lado de la CPU. Esto es compatible actualmente con Direct 3D 11, Metal y Vulkan (suponiendo que la implementación subyacente de Vulkan admita consultas de marcas de tiempo). La compatibilidad con el resto de las API 3D se introducirá en futuras versiones.

Qt Quick Controls Módulo

  • Añadida la propiedad live a SpinBox. Esto controla si value se actualiza cuando el usuario edita displayText.
  • Añadida la señal wrapped a Dial. Se emite cuando el dial se desplaza, es decir, cuando pasa de su valor máximo a su valor mínimo, o viceversa.
  • Se han añadido las propiedades startAngle y endAngle a Dial. Estas propiedades controlan el ángulo inicial y final del dial en grados.

Qt Quick Módulo Diseño

Qt Quick Módulo de formas

  • Se ha añadido un backend de renderizado de curvas experimental, que renderizará las curvas con mayor calidad que el renderizador de geometría predeterminado y aplicará antialiasing sin utilizar MSAA. Puede seleccionarse utilizando la propiedad Shape::preferredRendererType.

Qt Quick Módulo 3D

  • Se ha añadido una API QML para crear TextureData de forma procedimental llamada ProceduralTextureData. Anteriormente esto sólo era posible mediante C++ subclasificando QQuick3DTextureData.
  • Se ha añadido una API QML para la creación procedimental de geometría de malla denominada ProceduralMesh. Anteriormente esto sólo era posible a través de C + + subclase QQuick3DGeometry.
  • Ahora es posible importar archivos PLY.
  • Añadido soporte para crear texturas 3D con QQuick3DTextureData.
  • Añadido soporte inicial para Renderer Extensions. Este es el primer paso para permitir la adición de pases adicionales y permitir la personalización de los pases de renderización incorporados. View3D tiene una nueva propiedad llamada extensiones que toma una matriz de subclases QQuick3DRenderExtension. Esto es soportado usando las funciones de ayuda en QQuick3DExtensionHelpers.

Módulo Qt SQL

  • Se ha añadido un plugin para Mimer SQL
  • MySQL/MariaDB obtuvo las nuevas opciones de conexión MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_TLS_VERSION, MYSQL_OPT_SSL_MODE
  • El complemento ODBC devuelve ahora todos los códigos de error nativos en QSqlError
  • QSqlQuery tiene dos nuevas funciones boundValueName()/boundValueNames()

Qt TextToSpeech Módulo

La clase QTextToSpeech aprendió algunos trucos más que están disponibles con todos los motores:

  • Las aplicaciones pueden añadir múltiples trozos de texto a un motor de síntesis a través de enqueue.
  • La nueva señal aboutToSynthesize se emite justo antes de que se sintetice un trozo de texto.
  • Seleccionar una de las voces proporcionadas por el motor utilizando un conjunto de criterios es ahora fácil con la función miembro findVoices. Además, el código QML puede utilizar el tipo VoiceSelector como propiedad adjunta.

No todas las nuevas funciones están disponibles con todos los motores. Las aplicaciones pueden utilizar el nuevo indicador Capabilities y la propiedad engineCapabilities para comprobar cuáles de las siguientes nuevas funciones admite el motor utilizado actualmente:

  • Si el motor tiene la capacidad Synthesize, QTextToSpeech puede ahora sintetizar texto en datos PCM. La función synthesize puede utilizarse con una llamada que reciba trozos de datos PCM una vez sintetizados.
  • Si el motor tiene la capacidad WordByWordProgress, QTextToSpeech emite la señal sayingWord para cada palabra del fragmento de texto actual a medida que se pronuncia.

Qt WebEngine Módulo

Qt Widgets Módulo

  • QWidget tiene una nueva sobrecarga setTabOrder() que toma una lista inicializadora, permitiendo que toda la cadena se establezca con una sola llamada.
  • QMessageBox::Option proporciona los medios para controlar para cada cuadro de mensaje si se debe utilizar un cuadro de mensaje nativo.

Cambios en las plataformas

Plataformas de escritorio

macOS

  • La construcción de proyectos de usuario o de Qt para macOS requiere al menos la versión 3.21.1 de CMake.
  • QMessageBox::setCheckBox() se respeta ahora cuando se utilizan cuadros de mensaje nativos.
  • QFileDialog ya no desencadena diálogos de permiso innecesariamente.

Plataformas móviles

Android

  • Añadido soporte FileProvider cuando se utiliza QDesktopServices::openUrl().
  • Añadido AndroidX por defecto (una dependencia para FileProvider).
  • Introducida la política CMake QTP0002 para propiedades de destino específicas de android.
  • Actualizaciones para la lista de ejemplos soportados en Android.
  • Android 13 como versión máxima soportada
  • Actualizado Gradle a la versión 8.3.0.
  • QFileDialog Toma en efecto todos los filtros de nombre proporcionados y no sólo el seleccionado.
  • Actualizado Android objetivo SDK nivel a 33 para que coincida con Play Store requisito para 2023.

iOS

  • Añadido soporte para QWindow::setMask() para enmascarar el renderizado y la entrada.
  • Añadido soporte para ventanas externas, para incrustar UIViews en QWindows.

Plataformas integradas

Boot to Qt

  • Se añadió soporte para Yocto 4.2 (mickledore).
  • Se actualizaron los Niveles de Soporte para Hardware de Destino con nuevas placas soportadas:
    • Se agregó soporte de nivel 1 para la placa NXP i.MX 93.
    • Se ha añadido soporte de nivel 1 para la placa Jetson AGX Xavier.
    • Se ha añadido compatibilidad de nivel 3 con la tarjeta NXP i.MX 8QuadXPlus.
    • Se ha añadido compatibilidad de nivel 3 con la placa Toradex Apalis iMX8.
  • Los objetivos Toradex y ST utilizan ahora la última versión de Yocto LTS (kirkstone).

© 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.