Seite 1 von 1

QTableWidget rechts begrenzen

Verfasst: 7. März 2012 09:43
von LeonRush
Hallo,

ich würde gerne ein QTableWidget verwenden, in dem Spalten den gesamten Platz ausfüllen. Dazu habe ich

Code: Alles auswählen

 table->horizontalHeader()->setStretchLastSection(true); 
verwendet. Wenn ich nun aber horizontalHeaderItems zu weit nach rechts schiebe, beginnt die Tabelle damit sich nach rechts zu erweitern. Kann ich das unterbinden? Am liebsten wäre es mir, wenn sich die Tabelle auf der rechten Seite genau so verhalten würde wie links, wo eine feste Grenze ist und die horizontalHeaderItems sich zu einem Minimum stauchen lassen. Ist das möglich? Verwende ich das falsche Widget?

Grüße
Leon

Re: QTableWidget rechts begrenzen

Verfasst: 7. März 2012 18:18
von comdoxx
Nein.

setStretchLastSection bedeutet ja nur, dass die MINIMUM-Breite die Summe der Spaltenbreiten ist. Wenn Du händisch die Spalten breiter zauberst oder sie nicht passen, dann wird selbstverständlich erweitert. Es gibt aber ja auch noch QHeaderView::ResizeMode. Wenn man das denn braucht. -> Doku.

Re: QTableWidget rechts begrenzen

Verfasst: 8. März 2012 10:37
von LeonRush
Hallo,

QHeaderView::ResizeMode hatte ich schon versucht, aber das brachte mich nicht weiter. Zumal die meisten Optionen das Editieren der Spaltenbreite durch den User verhindern, was ich ja nicht unterbinden möchte. Was ich will, ist eine statische Grenze auf der rechten Seite, so wie links.

Re: QTableWidget rechts begrenzen

Verfasst: 8. März 2012 11:06
von comdoxx
...und eben das ist unsinnig, da die aufsummierte Breite der einzelnen Spalten (Stichwort "resizeToContents") größer sein könnte als die Gesamtbreite. Wie soll der Doppelklick auf eine Kante zwischen zwei Spalten(headern) (->resizeToContents() ) dann reagieren, wenn für die darauffolgende(n) Spalte(n) kein Platz mehr ist? Die dann ausblenden? Oder den Doppelklick ignorieren? So wird halt die Gesamtbreite erweitert, die ScrollBar hinzugefügt und alles verhält sich konsistent und wie erwartet.

Kennst Du irgendein (marktübliches) Programm, das in einer Tabelle die rechte Seite begrenzt hat? Warum willst Du es dann anders machen?