¿Cómo hacer que un widget Qt crezca con el tamaño de la ventana?


Quiero tener un pequeño QFormLayout que crezca para llenar su widget padre.

He creado un nuevo .archivo ui usando la plantilla QWidget en Qt Designer. Puse un QFormLayout dentro de esa 'ventana', luego puse algunos controles dentro de ese QFormLayout.

Todo esto funciona razonablemente bien, pero el QFormLayout siempre se mantiene en el tamaño que establecí en Qt Designer. Me gustaría que el QFormLayout para llenar su widget padre y crecer/reducir con él.

¿Cómo puedo lograr eso?

Author: Angie Quijano, 2011-05-18

3 answers

En Designer, active el centralWidget y asigne un diseño, por ejemplo, horizontal o vertical. A continuación, su QFormLayout se redimensionará automáticamente.

Imagen del Diseñador

Siempre asegúrese de que todos los widgets tienen un diseño! De lo contrario, el cambio de tamaño automático se romperá con ese widget!

Véase también

Los controles insisten en ser demasiado grandes, y no se redimensionan, en QtDesigner

 108
Author: Jens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:43

Descubrí que era imposible asignar un diseño al centralwidget hasta que hubiera agregado al menos un hijo debajo de él. Luego podría resaltar el pequeño icono con la marca roja 'deshabilitado' y luego hacer clic en un diseño en la barra de herramientas del diseñador en la parte superior.

 39
Author: Jillian Beuschel Marohnic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-11 02:57:31

La respuesta aceptada (su imagen) es incorrecta, al menos ahora en QT5. En su lugar, debe asignar un diseño al objeto raíz/widget (apuntando a la imagen antes mencionada, debe ser MainWindow en lugar de centralWidget). También tenga en cuenta que debe tener al menos un QObject creado debajo de él para que esto funcione. Haga esto y su interfaz de usuario se volverá sensible al cambio de tamaño de la ventana.

 0
Author: Nik-Lz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-10 05:46:34