Wie ändert man das Verhalten eines QListWidget
, so dass es seine Höhe ändert, anstatt eine (scheinbar willkürliche) Höhe zu wählen und Bildlaufleisten hinzuzufügen? Screenshot:QListWidget, das die Größe anstelle von Bildlauf ändert
Die QListView
ist horizontal so viel Platz füllen sollten, da sie können (so viele Schaffung von ‚Spalten‘, wenn man so will.) Dann wickeln sie und so viele Zeilen wie erforderlich machen passen Sie alle Einzelteile an. Diese Berechnungen sollten angepasst werden, wenn das Fenster in der Größe geändert wird. Das funktioniert alles gut.
Was ich jedoch wollen geschehen ist, dass anstelle der Höhe bleiben die gleichen, die QListView
sollte vertikal wachsen oder schrumpfen und niemals Scrollbars brauchen. Das Scrollen wird, falls notwendig, auf dem Elternknoten QWidget
behandelt, der alle Labels und Listen hostet. Es scheint, als ob die Höhe der QListWidget
festgestellt wird (nicht sicher, wo der Standardwert herkommt), es ändert sich nie. Es ist in einigen Fällen zu groß (siehe zweite "Test" -Liste oben) und zu klein in anderen (siehe obenstehende "leere Karten" -Liste).
Das obige Layout ist nicht überraschend: zwei QLabel
's und zwei QListWidget
‚s in einem QVBoxLayout.
Hier sind die Eigenschaften I auf den QListWidget
gesetzt haben‘ s:
setMovement(QListView::Static);
setResizeMode(QListView::Adjust);
setViewMode(QListView::IconMode);
setIconSize(QSize(128, 128));
(ich schon versucht, die horizontale und vertikale Bildlauf Politik einstellen, aber das stellt sich nur die Bildlaufleisten aus, um den Inhalt Clipping nicht. was ich will.)
OK, das ist sehr, sehr nah. Es funktioniert gut, solange die QScrollBox nicht im Bild ist. Sobald ich das hinzufüge, wird das QVBoxLayout so dünn wie möglich und so lange es geht. (Es gibt sizeHint von QSize (197, 942) zurück.Ich habe jede Kombination von QWidget :: setSizePolicy und QLayout :: setSizeConstraint ausprobiert, die ich mir vorstellen kann, und nichts ändert dieses Verhalten. Was ist das Geheimnis? –
'QScrollArea :: setWidgetResizable()' FOR. DAS. WIN !!! Vielen Dank für deine Hilfe ... Ich habe 2 Tage verloren, als ich diesen 'QListWidget'-Hasen-Trail hinter mich gebracht habe. –