En esta página

Los cambios introducidos en Qt Widgets

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 Widgets, y proporcionamos una guía para manejarlos.

Clases del núcleo

La clase QWidget

El manejador virtual QWidget::enterEvent() ahora recibe un parámetro QEnterEvent* que tiene información sobre la posición del puntero, en lugar de un simple QEvent*.

QDesktopWidget y QApplication::desktop()

QDesktopWidget ya estaba obsoleto en Qt 5, y ha sido eliminado en Qt 6, junto con QApplication::desktop().

QScreen proporciona una funcionalidad equivalente para consultar información sobre pantallas disponibles, pantallas que forman un escritorio virtual, y geometrías de pantalla.

Utilice QWidget::setScreen() para crear un QWidget en una pantalla específica; tenga en cuenta que esto no mueve un widget a una pantalla en una configuración de escritorio virtual.

QAction, QActionGroup

Estas clases se han trasladado al módulo QtGui. Las funciones miembro que dependen de tipos definidos en QtWidgets (como QAction::menu() y QAction::setMenu()) se implementan como plantillas que se instanciarán sólo cuando sean llamadas.

Widgets

La clase QAbstractButton

Se elimina el parámetro de tiempo de espera por defecto de QAbstractButton::animateClick() para permitir una sintaxis de conexión moderna sin necesidad de qOverload.

La clase QComboBox

La función QComboBox::setModel() es ahora virtual.

La clase QDateTimeEdit

Cuando se llama a QDateTimeEdit::setDateTime() con una fecha-hora cuya especificación horaria no coincide con la de la instancia QDateTimeEdit, la fecha-hora se convierte a la especificación horaria de QDateTimeEdit. De este modo se obtiene una fecha-hora que describe el mismo instante en el tiempo, pero lo hace en los mismos términos que utiliza QDateTimeEdit. Anteriormente, la fecha y la hora de la fecha-hora pasada se combinaban con la especificación de tiempo del widget, ignorando la especificación de tiempo de la fecha-hora; esto podía describir un momento diferente al descrito por la fecha-hora pasada.

ItemViews

La clase QAbstractItemView

El método virtual viewOptions() que antes devolvía un objeto QStyleOptionViewItem ha sido renombrado a initViewItemOption, e inicializa un objeto QStyleOptionViewItem que se pasa a través de un puntero.

Se consolidan todas las subclases versionadas de QStyleOption y se restablecen los números de versión a 1.

Los distintos métodos initStyleOption() de las clases de widgets son ahora virtuales.

Cambios en la hoja de estilo

Estilizar un widget por su propiedad en Qt 5 vs Qt 6 es diferente, especialmente si la propiedad es un enum. En Qt 5, el valor del selector para dicha propiedad es el equivalente entero del valor enum, mientras que en Qt 6 se usa el valor cadena. El siguiente ejemplo demuestra esta diferencia:

// Qt 5 style sheet
QToolButton[popupMode="1"] {
    padding-right: 20px;
}
// Qt 6 style sheet
QToolButton[popupMode=MenuButtonPopup] {
    padding-right: 20px;
}

Clases de Utilidad

QUndoCommand, QUndoStack y QUndoGroup

Las clases independientes de widget del framework Deshacer/Rehacer se han movido al módulo QtGui.

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