En esta página

Los cambios en Qt GUI

Qt 6 son el resultado del esfuerzo consciente por hacer el framework más eficiente y fácil de usar.

Intentamos mantener la compatibilidad binaria y de código fuente de todas las API públicas en cada versión. Pero algunos cambios eran inevitables en un esfuerzo por hacer de Qt un framework mejor.

En este tema resumimos esos cambios en Qt GUI, y proporcionamos una guía para manejarlos.

Clases del núcleo

La clase QBitmap

La construcción implícita de un QBitmap a partir de un QPixmap ya no está soportada. El constructor y el operador de asignación se han hecho explícitos y se han marcado como obsoletos. Utilice en su lugar la nueva función de fábrica estática fromPixmap.

La clase QCursor

La construcción implícita de un QCursor a partir de un QPixmap ya no está soportada, el constructor se ha hecho explícito.

La clase QKeyCombination

QKeyCombination es una nueva clase para almacenar una combinación de una tecla con un modificador opcional. Debería utilizarse como reemplazo para combinar valores del enum Qt::Key con un modificador de forma segura.

Recomendamos migrar el código que actualmente utiliza operator+() para combinar una clave y modificadores, ya que es probable que los futuros estándares de C++ declaren ilegales las operaciones aritméticas entre tipos de enumeración no relacionados. Utilice operator|() y cambie las API que esperan un int por un QKeyCombination.

Las API existentes que esperan un int para una combinación de teclas pueden llamarse utilizando QKeyCombination::toCombined().

Clases de texto

La clase QFontDatabase

La clase QFontDatabase ahora sólo tiene funciones estáticas. El constructor ha quedado obsoleto. En lugar de, por ejemplo

const QStringList fontFamilies = QFontDatabase().families();

use

const QStringList fontFamilies = QFontDatabase::families();

La clase QFont

Los valores numéricos del enumerador QFont::Weight se han cambiado para estar en línea con los valores de peso OpenType. QFont::setWeight() espera un valor enum en lugar de un int, y el código que llame al setter con un entero fallará al compilar. Para seguir usando los antiguos valores enteros, use QFont::setLegacyWeight().

Clases de pintura

Consulte la guía de portabilidad de Qt Print Support para obtener información sobre QPagedPaintDevice y otras clases relacionadas con la impresión.

Clases de utilidad

QIntValidator y QDoubleValidator

El método setRange() ya no está marcado como virtual.

Clases OpenGL

Con la introducción de Qt RHI como base de renderizado en Qt, la mayoría de las clases prefijadas por QOpenGL se han movido al módulo Qt OpenGL módulo.

Puedes encontrar más detalles en la guía de portabilidad Qt OpenGL .

Una excepción notable es la clase QOpenGLContext, que aún reside en Qt GUI.

Además, la clase QOpenGLWidget se ha trasladado a un nuevo módulo, denominado Qt OpenGL Widgets.

La clase QOpenGLContext

La función QOpenGLContext::versionFunctions() es reemplazada por QOpenGLVersionFunctionsFactory::get(). QOpenGLVersionFunctionsFactory es ahora una clase pública, parte del módulo Qt OpenGL módulo.

ANGLE

En Windows, ANGLE, un traductor de OpenGL ES a Direct 3D de terceros, ya no está incluido en Qt. Esto significa que Qt::AA_UseOpenGLES y la variable de entorno QT_OPENGL=angle ya no tienen ningún efecto. En las compilaciones dinámicas de OpenGL no hay un fallback automático a ANGLE en caso de que OpenGL propiamente dicho falle al inicializarse. Para aplicaciones basadas en QWindow o QWidget que utilicen OpenGL directamente, por ejemplo a través de QOpenGLWidget, esto significa que OpenGL proper es la única opción en tiempo de ejecución. Sin embargo, la alternativa de utilizar una implementación OpenGL de software puro, como Mesa llvmpipe que se incluye con los paquetes Qt precompilados, sigue estando disponible. Para aplicaciones Qt Quick y Qt Quick 3D, Qt 6 introduce soporte para Direct 3D 11, Vulkan y Metal, además de OpenGL. En Windows la opción por defecto es Direct 3D, por lo que la eliminación de ANGLE se alivia al tener también soporte para APIs gráficas distintas de OpenGL.

Integración nativa del portapapeles

Qt 5 proporcionaba interfaces para integrar formatos de portapapeles específicos de la plataforma o personalizados en Qt a través de QMacPasteboardMime en QtMacExtras, y QWindowsMime desde la API QPA de Windows. Desde Qt 6.6, la funcionalidad equivalente es proporcionada por las clases QUtiMimeConverter para macOS, y QWindowsMimeConverter para Windows.

Portar de QWindowsMime a QWindowsMimeConverter no requiere prácticamente cambios, ya que la interfaz virtual es idéntica. Sin embargo, en Qt 6 ya no es necesario registrar una implementación de QWindowsMimeConverter; al instanciar el tipo se registra implícitamente el conversor.

Portar un QMacPasteboardMime a QUtiMimeConverter requiere renombrar algunas de las funciones virtuales. Nótese que la API QMacPasteboardMime utilizaba el término anticuado flavor para el formato nativo del portapapeles en macOS, mientras que la plataforma utiliza ahora Uniform Type Identifiers, es decir UTIs, que Qt ha adaptado para los nombres de funciones y parámetros.

Las funciones mimeFor y flavorFor se sustituyen por las implementaciones mimeForUti y utiForMime, respectivamente. Éstas deberían devolver el nombre del tipo mime o UTI al que el conversor puede convertir el formato de entrada, por lo que un port normalmente sólo implica renombrar los overrides existentes. Las funciones convertToMime, convertFromMime, y count en QUtiMimeConverter son idénticas a sus versiones QMacPasteboardMime.

Las funciones canConvert, converterName ya no son necesarias, están implícitas en la implementación de las funciones anteriores, por lo que los overrides de esas funciones pueden ser eliminados.

Al igual que con QWindowsMimeConverter, el registro se realiza instanciando el tipo.

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