web-dev-qa-db-fra.com

Comment faire croître un widget Qt avec la taille de la fenêtre?

Je veux avoir une petite QFormLayout qui se développe pour remplir son widget parent.

J'ai créé un nouveau fichier .ui en utilisant le modèle QWidget dans Qt Designer. Je mets une QFormLayout à l'intérieur de cette 'fenêtre', puis quelques contrôles à l'intérieur de cette QFormLayout.

Tout cela fonctionne assez bien, mais la QFormLayout reste toujours à la taille définie dans Qt Designer. J'aimerais que la QFormLayout remplisse son widget parent et s'agrandisse/diminue.

Comment puis-je accomplir cela?

77
bastibe

Dans Designer, activez le centralWidget et assignez une présentation, par exemple. mise en page horizontale ou verticale. Votre QFormLayout sera alors automatiquement redimensionné.

Image of Designer

Assurez-vous toujours que tous les widgets ont une disposition! Sinon, le redimensionnement automatique sera interrompu avec ce widget!

Voir également

Les contrôles insistent pour être trop grands et ne redimensionneront pas dans QtDesigner

111
Jens

J'ai trouvé qu'il était impossible d'attribuer une mise en page à la centralwidget avant d'avoir ajouté au moins un enfant en dessous. Ensuite, je pourrais mettre en surbrillance la petite icône avec la marque rouge «désactivé», puis cliquer sur une mise en page dans la barre d’outils de Designer en haut.

40

La réponse acceptée (son image) est fausse, du moins maintenant dans QT5. Au lieu de cela, vous devez affecter une présentation à l'objet racine/widget (en pointant sur l'image susmentionnée, il devrait s'agir de la variable MainWindow au lieu de centralWidget). Notez également que vous devez avoir au moins une QObject créée en dessous pour que cela fonctionne. Faites cela et votre interface utilisateur réagira au redimensionnement de la fenêtre.

0
Nik-Lz