resizeColumnToContents() ohne Berücksichtigung des Headers

Alles rund um die Programmierung mit Qt
Antworten
N¤X
Beiträge: 77
Registriert: 21. September 2009 12:24

resizeColumnToContents() ohne Berücksichtigung des Headers

Beitrag von N¤X »

Hallo
Ich würde gerne die Spalten einer QTableView mittels resizeColumnToContents() an den Inhalt anpassen, allerdings soll dabei der Header nicht berücksichtigt werden, sprich er soll gegebenenfalls einfach abgeschnitten werden.

Ein Ansatz war, den Header für den Resize einfach auszublenden, also

Code: Alles auswählen

   tableView->horizontalHeader()->hide();
   tableView->resizeColumnToContents(2);
   tableView->horizontalHeader()->show();
Das hat aber nichts gebracht, selbst wenn der Header dauerhaft ausgeblendet wird, wird sein Inhalt noch für den Resize berücksichtigt.

Ein weiterer Versuch war, vom Model aus einen SizeHint zurückzugeben

Code: Alles auswählen

QVariant MyModel::headerData(int section, Qt::Orientation orientation, int role) const {
   switch (role) {
   ...
   case Qt::SizeHintRole:
      return QSize(20, 20);
   }
}
Das funktioniert soweit auch ganz gut, allerdings weiß ich nicht, auf was für einen Wert ich die Höhe einstellen soll, die sollte ja eigentlich unverändert bleiben...

Kann man das irgendwie sinnvoller erreichen, oder bekommt man die default height irgendwie raus?
mfg N¤X
Antworten