Je souhaite que mes widgets personnalisés gagnent de l'espace lorsque la boîte de dialogue est redimensionnée. Cela fonctionnait quand je n'avais qu'une poignée de widgets, mais après avoir ajouté plusieurs colonnes de ces mêmes widgets et les avoir placées dans un QGridLayout, l'espace supplémentaire entre simplement comme padding entre les widgets.Modification du comportement de redimensionnement dans les dispositions Qt
Répondre
J'ai eu des problèmes avec cela dans le passé et voici quelques-unes des choses que j'ai trouvé:
D'abord, assurez-vous que tous les widgets que vous souhaitez développer ont sizePolicy sur « L'expansion » . Assurez-vous que les widgets qui composent vos widgets personnalisés sont dans une disposition qui permet leur extension. Vous pouvez vérifier cela en ajoutant simplement un de vos widgets personnalisés à la fenêtre et en voyant qu'il se développe comme prévu. Assurez-vous que les widgets du formulaire que vous ne voulez pas développer ont une taille fixe (minimum = maximum) dans la dimension que vous voulez qu'ils restent statiques. Parfois, la disposition de la grille provoque des problèmes d'espacement étranges car les lignes sont redimensionnées en fonction du widget le plus grand de la ligne entière et de la même manière pour les colonnes. Pour certaines dispositions, il est préférable d'utiliser une disposition verticale contenant des dispositions horizontales ou vica versa pour créer un effet de grille. Seulement de cette façon, chaque sous-disposition est espacée indépendamment des autres lignes ou colonnes.
Contrôle de l'extension du réseau programatically
J'ai trouvé que vous pouvez facilement contrôler les colonnes/lignes dilatent et les colonnes/lignes restent fixes en largeur et en utilisant QGridLayout::setColumnStretch()
QGridLayout::setRowStretch()
. Vous devrez fournir des poids aux colonnes spécifiques (0 pour aucune extension).
Par exemple, si vous voulez la colonne 0 à ne pas prendre une chambre et la colonne 1 de prendre le reste de la salle de la fenêtre, faites ceci:
QGridLayout* layout ;
// Set up the layout
layout->setColumnStretch(0, 0) ; // Give column 0 no stretch ability
layout->setColumnStretch(1, 1) ; // Give column 1 stretch ability of ratio 1
Contrôle de l'extension du réseau à l'aide de Qt Designer
Vous pouvez faire ce que j'ai décrit ci-dessus si vous utilisez Designer. Il suffit de rechercher les propriétés du widget layoutRowStretch et layoutColumnStretch. Il contiendra une liste d'entiers séparés par des virgules.
Une autre option est à l'intérieur de QT Creator, pour spécifier dans le widget de mise en page de niveau supérieur de la section que vous voulez une taille mise en forme d'une dispositionSizeConstraint de "SetFixedSize". Vous devez également supprimer toutes les entretoises d'en dessous de ce widget. Dans mon cas, j'ai eu une boîte de dialogue avec un TreeWidget, une Table, et quelques trucs de sélection de couleurs. Je voulais que les contrôles de sélection de couleur restent à la même taille horizontalement, donc ils étaient dans un VerticalLayout. J'imagine que vous pouvez faire la même chose avec un HorizontalLayout aussi si vous voulez que les choses restent à la même hauteur. Si vous avez vraiment besoin d'espaceurs dans la mise en page, vous pouvez probablement utiliser des étiquettes vierges de taille fixe.
- 1. Comportement relloc lors du redimensionnement
- 2. Modification du comportement de TStringStream.ReadString dans D2009?
- 3. Comportement de redimensionnement JSplitPane
- 4. Modification du comportement de ComboBox modifiable
- 5. Veuillez me diriger vers la (bonne) documentation sur les dispositions QT pour le développement du plasma
- 6. JTextArea avec un comportement étrange lors du redimensionnement du JFrame
- 7. Modification du comportement initial de LazyLoad dans NHibernate
- 8. Modification des états d'affichage lors du redimensionnement de l'application
- 9. Modification du comportement de la souris dans le menu YUI
- 10. Modification du comportement de MouseWheel d'une zone de liste déroulante
- 11. Xcode: modification du comportement du double-clic sur un fichier
- 12. redimensionnement du rendu d'élément lors du redimensionnement de horizontalList
- 13. Comportement de redimensionnement automatique Flex TextArea - est-ce possible?
- 14. Delphi 5: comment suspendre les dispositions d'ancre?
- 15. Python et Qt (PyQt) - méthode d'appel avant l'événement de redimensionnement
- 16. WPF zone de texte et bordures - comportement Redimensionnement curieux
- 17. Modification du comportement de link_to dans une installation de Redmine (ruby on rails)
- 18. SWT: Les dispositions imbriquées avec ScrolledComposite dépassent l'espace disponible
- 19. Redimensionnement du formulaire d'animation dans VB.NET
- 20. QT 4.5 - Modification de la zone de sélection pour QGraphicsItem
- 21. Redimensionnement automatique du widget dojo dijit.Grid lors du redimensionnement du conteneur parent
- 22. Articles de menu Flicker lors du redimensionnement
- 23. Qt - Disposition du clavier
- 24. Redimensionnement et redimensionnement de l'image
- 25. Menu déroulant, lors du redimensionnement du navigateur
- 26. Remplacement du comportement hérité
- 27. Comportement d'actualisation du navigateur
- 28. redimensionner la largeur de jqgrid lors du redimensionnement du navigateur
- 29. Modification de la disposition du clavier pour un autre processus
- 30. Modification du nom de viewstate
# 4 est ce que j'ai fait il y a longtemps donc merci :) –
Très bonne réponse, merci! –