Seite 1 von 1

Spaltenbreite im QTabelView automatisch anpassen

Verfasst: 28. August 2008 11:52
von BartSimpson
Hallo,
ich habe folgendes vor:
1. das nach der Übergabe des Modells an den View die Spalten automatisch an die Breite des Textes angepasst werden.
2. Wenn man das Fenster in dem sich der View befindet vergößert/verkleinert, sollen sich auch die Spalten in der Breite ändern.

Verfasst: 31. August 2008 10:55
von BJJ380
zu 1. Breite des Textes anpassen...

Code: Alles auswählen

tableView->resizeColumnsToContents();
zu2. Spalten in der Breite ändern...

Code: Alles auswählen

tableView->horizontalHeader()->setStretchLastSection( true );
MfG JJ

Verfasst: 31. August 2008 11:13
von comer352l
...oder das Resize-Verhalten der Spalten über QHeaderView festlegen, was dann so ausschaut:

Code: Alles auswählen

QHeaderView *headerview = myTableWidget->horizontalHeader();
headerview->setResizeMode(column, QHeaderView::ResizeToContents);
Die Spaltenbreite wird dann automatisch dem Inhalt angepasst.

Verfasst: 1. September 2008 08:45
von BartSimpson
Danke comer352l genau das hatte ich gesucht.:)
Damit ist schon mal der 1. Teil gelöst.

Verfasst: 1. September 2008 09:18
von comer352l
Um den Spaltenbreite bei Größenänderungen des QTableWidgets neu festzulegen kannst du z.B die die function

resizeEvent ( QResizeEvent * event )

implementieren, in der du dann die notwendigen Berechnungen machst und die Spaltenbreiten dann mit setColumnWidth(int) setzt.
Falls du einfach nur erreichen möchtest, dass die Spalten die komplette Tabellenbreite ausnutzen, dann tut's evtl. auch eine Spalte mit QHeaderView::Stretch

Verfasst: 1. September 2008 12:24
von BartSimpson
Jetzt habe ich dabei noch ein anderes Problem endeckt. dass setResizeMode(QHeaderView::ResizeToContents); das ganze Modell nicht drurchgeht. Daher sind die Spalten nicht so breit wie der breiteste Text.(Wenn dieser erst nach dem Scrollen sichtbar wird)

Verfasst: 25. Juni 2009 15:10
von KillerKing
und wie hast du dieses letzte Problem gelöst?

Verfasst: 25. Juni 2009 15:30
von BartSimpson
Noch nicht wirklich.
habe das erst mal so gelassen mangels Zeit.

Verfasst: 25. Juni 2009 15:47
von KillerKing
Schade, hab nämlich das selbe Problem.

Was mir aufgefallen ist: Sobald ich auf den Header der Spalte klicke, passt er die Spaltenbreite auf das längste Item doch an, aber erben erst nach dem Klick. Hm, das müsste man doch automatisieren können?