Diseño de expansión automática con Qt-Designer

217

Estoy usando el diseñador Qt.

Quiero crear un QVBoxLayout que se expandirá automáticamente para llenar toda la ventana.

El diseño de los QVBoxLayoutrestos fijos.

¿Cómo puedo hacer QVBoxLayoutque se expanda y llene toda la ventana a través del diseñador?

Elazar Leibovich
fuente
Si solo desea utilizar el diseño en Qt Designer, consulte los siguientes consejos: stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow

Respuestas:

366

Después de crear su QVBoxLayoutQt Designer, haga clic con el botón derecho en el fondo de su widget / cuadro de diálogo / ventana (no el QVBoxLayout, pero el widget principal) y seleccione Layout -> Lay Out in a Grid desde la parte inferior del menú contextual. El QVBoxLayoutahora debe estirarse para ajustarse a la ventana y cambiará el tamaño automáticamente cuando se cambia el tamaño de toda la ventana.

Greg S
fuente
66
Gracias, también he estado buscando una solución a este problema.
Simon H.
35
En realidad, no es necesario crear el diseño de cuadrícula en absoluto. En lugar de crear un QVBoxLayout usted mismo, deseleccione todos los elementos y haga clic en el fondo del widget. Luego seleccione Lay Out -> Lay Out Verticalmente.
Michal Kottman el
3
@ Michael Kottman: Eso solo funciona en tiempo de diseño. No cambiará el diseño cuando el usuario cambie el tamaño de la ventana en tiempo de ejecución.
Jay
55
Tanto la cuadrícula como el diseño vertical me funcionan en el diseño y el tiempo de ejecución.
AndiDog
2
Deseo agregar un pequeño detalle: si desea agregar un diseño autoextensible a una página QTabWidget , en realidad no puede hacer clic derecho en el fondo de la página, ya que seleccionaría el QTabWidget y no la pestaña correspondiente. Debe hacer clic con el botón derecho en la etiqueta de la pestaña como se muestra en la ventana del diseñador, y luego seleccionar Diseño -> Diseño en una cuadrícula
Emanuele Cipolla
15

De acuerdo con la documentación , debe haber un conjunto de diseño de nivel superior.

Es necesario un diseño de nivel superior para garantizar que sus widgets cambien de tamaño correctamente cuando se cambie el tamaño de su ventana. Para verificar si ha establecido un diseño de nivel superior, obtenga una vista previa de su widget e intente cambiar el tamaño de la ventana arrastrando el control de tamaño.

Puede establecer uno borrando la selección y haciendo clic derecho en el formulario en sí y eligiendo uno de los diseños disponibles en el menú contextual.

Qt diseños

Mahmoud Hanafy
fuente
2

Traté de encontrar una propiedad de "ajuste a la pantalla" pero no existe.

Pero establecer el "tamaño máximo" del widget en un "número grande" (como 2000 x 2000) ajustará automáticamente el widget al espacio del widget principal.

Tero Nivala
fuente
66
¿Qué sucede con esta técnica en un MacBook Pro con pantalla Retina (2880x1800)?
ta.speot.is el
1
Simplemente configúrelo en el número máximo que aceptará (que Designer me muestra es 16777215) y debería funcionar en cualquier tamaño de monitor.
andreb
0

Una vez que haya agregado su diseño con al menos un widget, seleccione su ventana y haga clic en el botón "Actualizar" de QtDesigner. La interfaz se redimensionará al tamaño más optimizado y su diseño se ajustará a toda la ventana. Luego, al cambiar el tamaño de la ventana, el diseño cambiará de tamaño de la misma manera.

Patrice Bernassola
fuente
Menciono que cuando el usuario cambia el tamaño de la ventana completa, el diseño vertical (y, por lo tanto, su contenido) se estirará para ajustarse. No me importa cómo se ve en el Diseñador Qt.
Elazar Leibovich
-7

Establezca horizontalPolicy y VerticalPolicy para los controles / widgets en "Preferido" .

Soleado
fuente