En esta página

Uso de diseños en Qt Widgets Designer

Antes de que un formulario pueda ser utilizado, los objetos del formulario necesitan ser colocados en diseños. Esto garantiza que los objetos se muestren correctamente cuando el formulario se previsualiza o se utiliza en una aplicación. Colocar los objetos en un diseño también asegura que se redimensionarán correctamente cuando se redimensione el formulario.

Una vez insertados los widgets en una maqueta, no es posible moverlos y redimensionarlos individualmente porque la propia maqueta controla la geometría de cada widget dentro de ella, teniendo en cuenta las indicaciones proporcionadas por los espaciadores. Los espaciadores pueden añadirse a la maqueta para influir en la geometría de los widgets.

Los diseños pueden anidarse para formar una jerarquía. Por ejemplo, para conseguir un diseño de diálogo típico con una fila horizontal de botones, los elementos de diálogo pueden disponerse utilizando un diseño de caja vertical con un diseño de caja horizontal que contenga los botones en la parte inferior. Para una introducción al sistema de diseño de Qt, consulte Gestión del diseño.

Para romper un diseño, pulse Ctrl+0 o seleccione Romper diseño en el menú contextual del formulario, en el menú Formulario o en la barra de herramientas principal.

Establecer un diseño de nivel superior

El diseño de nivel superior del formulario puede establecerse borrando la selección (pulsando el botón izquierdo del ratón sobre el propio formulario) y aplicando un diseño. Un diseño de nivel superior es necesario para asegurar que sus widgets se redimensionan correctamente cuando se redimensiona su ventana. Para comprobar si has establecido un diseño de nivel superior, previsualiza tu widget e intenta cambiar el tamaño de la ventana arrastrando el control de tamaño.

Captura de pantalla que muestra los botones para cambiar el tipo de diseñoAplicar un diseño

Para aplicar una disposición, puedes seleccionarla en la barra de herramientas de la izquierda o en el menú contextual que se muestra a continuación.

Del mismo modo, los diseños de nivel superior se establecen en widgets contenedores (QGroupBox) o en páginas de widgets contenedores basados en páginas (QTabWidget, QToolBox y QStackedWidget), respectivamente. Para ello, el widget contenedor debe estar seleccionado.

Los diseños de nivel superior no son visibles como objetos independientes en el inspector de objetos. Sus propiedades aparecen debajo de las propiedades del widget del formulario principal, del widget contenedor o de la página de un widget contenedor en el Editor de propiedades.

Captura de pantalla que muestra otra opción para cambiar el tipo de diseño haciendo clic con el botón derecho en el editor

Objetos de diseño

Los objetos de diseño se crean aplicando un diseño a un grupo de objetos existentes. Esto se consigue seleccionando los objetos que necesita gestionar y aplicando uno de los diseños estándar mediante la barra de herramientas principal, el menú Formulario o el menú contextual del formulario.

El objeto de diseño se indica mediante un marco rojo en el formulario y aparece como objeto en el Inspector de objetos. Sus propiedades (márgenes y restricciones) se muestran en el Editor de propiedades.

El objeto de presentación puede seleccionarse y colocarse dentro de otra presentación junto con otros widgets y objetos de presentación para construir una jerarquía de presentación.

Cuando se selecciona un objeto de diseño hijo, se puede seleccionar su objeto de diseño padre pulsando la tecla Mayús mientras se hace clic en él. Esto permite seleccionar un diseño específico en una jerarquía, lo que de otro modo resultaría difícil debido al reducido tamaño del marco.

Insertar objetos en una maqueta

Los objetos pueden insertarse en una maqueta existente arrastrándolos desde su posición actual y soltándolos en el lugar deseado. Cuando se arrastra un objeto, aparece un cursor azul en la maqueta para indicar dónde se añadirá.

Captura de pantalla que muestra cómo mover widgets en un diseño con arrastrar y soltar

Insertar objetos en una maqueta

Tipos de maquetas

Disposiciones horizontales y verticales (cajas)

La forma más sencilla de organizar los objetos de un formulario es colocarlos en una disposición horizontal o vertical. Las disposiciones horizontales garantizan que los widgets que contienen estén alineados horizontalmente; las disposiciones verticales garantizan que estén alineados verticalmente.

Los diseños horizontales y verticales pueden combinarse y anidarse a cualquier profundidad. Sin embargo, si necesitas un mayor control sobre la colocación de los objetos, puedes utilizar la disposición en cuadrícula.

La disposición en cuadrícula

Se pueden crear diseños de formulario complejos colocando objetos en un diseño de cuadrícula. Este tipo de diseño da al diseñador de formularios mucha más libertad para colocar los widgets en el formulario, pero puede resultar en un diseño mucho menos flexible. Sin embargo, para algunos tipos de diseño de formulario, una disposición en cuadrícula es mucho más adecuada que una disposición anidada de diseños horizontales y verticales.

El diseño del formulario

La clase QFormLayout gestiona widgets en un formulario de dos columnas; la columna izquierda contiene etiquetas y la columna derecha contiene widgets de campo como ediciones de línea, cuadros de giro, etc. La clase QFormLayout se adhiere a varias directrices de apariencia de la plataforma y admite el ajuste para filas largas.

Captura de pantalla que muestra un ejemplo de diseño con dos etiquetas y en cada etiqueta un campo de texto lateral

El archivo de interfaz de usuario anterior da como resultado las vistas previas que se muestran a continuación.

WindowsmacOSCleanlooks
Captura de pantalla de la vista previa del diseño en WindowsCaptura de pantalla de la vista previa del diseño en macOSCaptura de pantalla que muestra la vista previa del diseño con aspecto limpio en Windows XP

Diseños de Splitter

Otra forma habitual de gestionar la disposición de los objetos en un formulario es colocarlos en un divisor. Estos divisores organizan los objetos horizontal o verticalmente de la misma manera que los diseños normales, pero también permiten al usuario ajustar la cantidad de espacio asignado a cada objeto.

Captura de pantalla que muestra cómo cambiar el diseño a "Distribuir verticalmente en Splitter".

Aunque QSplitter es un widget contenedor, Qt Widgets Designer trata los objetos del divisor como diseños que se aplican a widgets existentes. Para colocar un grupo de widgets en un divisor, selecciónelos como se describe aquí y, a continuación, aplique el diseño del divisor mediante el botón correspondiente de la barra de herramientas, el método abreviado de teclado o la entrada del menú contextual Diseño.

Teclas de acceso directo

Además de las entradas estándar de la barra de herramientas y del menú contextual, también hay un conjunto de atajos de teclado para aplicar disposiciones a los widgets.

DisposiciónMétodo abreviadoDescripción
HorizontalCtrl+1Coloca los objetos seleccionados en una disposición horizontal.
VerticalCtrl+2Coloca los objetos seleccionados en vertical.
CuadrículaCtrl+5Coloca los objetos seleccionados en una cuadrícula.
FormularioCtrl+6Coloca los objetos seleccionados en un diseño de formulario.
Divisor horizontalCtrl+3Crea un divisor horizontal y coloca los objetos seleccionados dentro de él.
Divisor verticalCtrl+4Crea un divisor vertical y coloca los objetos seleccionados en su interior.
Ajustar tamañoCtrl+JAjusta el tamaño de la presentación para garantizar que cada objeto hijo tenga espacio suficiente para mostrar su contenido. Consulte QWidget::adjustSize() para obtener más información.

Nota: Ctrl+0 se utiliza para romper una presentación.

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