QTableWidget rechts begrenzen

Alles rund um die Programmierung mit Qt
Antworten
LeonRush
Beiträge: 2
Registriert: 6. März 2012 17:55

QTableWidget rechts begrenzen

Beitrag 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
comdoxx
Beiträge: 12
Registriert: 23. Februar 2012 11:36
Wohnort: Bremen

Re: QTableWidget rechts begrenzen

Beitrag 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.
LeonRush
Beiträge: 2
Registriert: 6. März 2012 17:55

Re: QTableWidget rechts begrenzen

Beitrag 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.
comdoxx
Beiträge: 12
Registriert: 23. Februar 2012 11:36
Wohnort: Bremen

Re: QTableWidget rechts begrenzen

Beitrag 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?
Antworten