Comment modifier le comportement d'un QListWidget
afin qu'il redimensionne sa hauteur au lieu de choisir une hauteur (apparemment arbitraire) et d'ajouter des barres de défilement? Voir capture d'écran:QListWidget qui redimensionne à la place des parchemins
Les QListView
de doivent remplir autant d'espace horizontal car ils peuvent (créer autant de « colonnes » si vous préférez.) Ensuite, ils enveloppent et faire autant de lignes que nécessaire pour adapter tous les articles. Ces calculs doivent être ajustés lorsque la fenêtre est redimensionnée. Tout cela fonctionne très bien.
Cependant, ce que je veux arriver est que, au lieu de la hauteur restant la même, la QListView
devrait augmenter ou diminuer verticalement et jamais besoin de barres de défilement. Le défilement, si nécessaire, sera géré sur le parent QWidget
qui héberge toutes les étiquettes et listes. Il semble qu'une fois la hauteur du QListWidget
établie (je ne sais pas d'où vient sa valeur par défaut), elle ne change jamais. Il est trop grand dans certains cas (voir le deuxième « test » liste ci-dessus) et trop petit dans d'autres (voir premières « cartes blanches » liste ci-dessus.)
La mise en page est rien d'étonnant au-dessus: deux QLabel
« s et deux QListWidget
« s dans un QVBoxLayout.
Voici les propriétés que je l'ai mis sur les QListWidget
» s:
setMovement(QListView::Static);
setResizeMode(QListView::Adjust);
setViewMode(QListView::IconMode);
setIconSize(QSize(128, 128));
(je l'ai déjà essayé de placer les politiques de scrollbar horizontale et verticale, mais qui tourne juste la barre de défilement au large, clipsage du contenu non. ce que je veux.)
OK, c'est très, très proche. Cela fonctionne très bien tant que QScrollBox n'est pas dans l'image. Dès que j'ajoute cela, le QVBoxLayout devient aussi mince que possible et aussi longtemps que possible. (Il retourne sizeHint de QSize (197, 942).J'ai essayé toutes les combinaisons de QWidget :: setSizePolicy et QLayout :: setSizeConstraint auxquelles je peux penser, et rien ne change ce comportement. Quel est le secret? –
'QScrollArea :: setWidgetResizable()' POUR. LA. WIN !!! Merci beaucoup pour votre aide ... J'ai perdu 2 jours à faire cette piste de lapin QListWidget. –