QT4: QTableWidget Spaltenbreite automatisch anpassen.
QT4: QTableWidget Spaltenbreite automatisch anpassen.
Hi,
weiss einer, wie man unter QT4 einer QTable sagen kann, dass die spalten automatisch auf die benoetigte groesse angepasst werden,
oder falls das nicht geht, wie ich das manuell machen kann...
wie bekomme ich die benoetigte width und height fuer die einzelnen items unter beruecksichtigung der fonts etc....??
gruss,
nando
weiss einer, wie man unter QT4 einer QTable sagen kann, dass die spalten automatisch auf die benoetigte groesse angepasst werden,
oder falls das nicht geht, wie ich das manuell machen kann...
wie bekomme ich die benoetigte width und height fuer die einzelnen items unter beruecksichtigung der fonts etc....??
gruss,
nando
-
Locutus
Ich habe das Problem, daß ich die Länge der Header vorgeben möchte, kann man das?
So soll zum Beispiel "Pfad der Datei" den meisten Platz einnehmen und "Größe" und "Attribute" ganz klein sein. Im Moment ist es so, daß der letzte Headereintrag den größten Platz für sich beansprucht, mit QHeaderView::Stretch läßt sich das leider nicht so beheben, wie ich gerne möchte.
Ich habe unter QHeaderView sonst nichts in der Anleitung gefunden was mich wirklich weitergebracht hätte
So soll zum Beispiel "Pfad der Datei" den meisten Platz einnehmen und "Größe" und "Attribute" ganz klein sein. Im Moment ist es so, daß der letzte Headereintrag den größten Platz für sich beansprucht, mit QHeaderView::Stretch läßt sich das leider nicht so beheben, wie ich gerne möchte.
Ich habe unter QHeaderView sonst nichts in der Anleitung gefunden was mich wirklich weitergebracht hätte
-
Locutus
Vielen Dank für deine Antwort.
Wobei
bei mir keine Wirkung zeigt?
Wobei
Code: Alles auswählen
ui.treeWidget->header()->resizeSection(0, 450);Es geht. Hier ein Auszug aus meinem Code:
Die einzelnen Sektionen sind unterschiedlich und nur die 2. sized mit, wenn sich die Größe ändert.
Code: Alles auswählen
QHeaderView* header = new QHeaderView(Qt::Horizontal, tableWidget);
header->setToolTip("Header");
header->setClickable(true);
header->setSortIndicatorShown(true);
tableWidget->setHorizontalHeader(header);
tableWidget->setColumnCount(11);
tableWidget->setHorizontalHeaderLabels(labels);
tableWidget->setSortingEnabled(true);
header->setResizeMode(QHeaderView::Interactive);
header->setResizeMode(1, QHeaderView::Stretch);
header->resizeSection(0,23);
header->resizeSection(1,210);
header->resizeSection(2,60);
header->resizeSection(3,60);
-
Locutus
Ich habe jetzt herausgefunden warum das bei mir nicht ging. Ich habe unter Edit Items die Columns direkt eingegeben. Diese ließen sich dann aber mit ui.treeWidget->header()->resizeSection(1, 450); nicht verändern, wenn ich den Header aber z.B.
erzeuge, dann zeigt auch resizeSection Wirkung.
Das ist doch ein Qt-Bug (4.14), oder? Ist dann ja kein Wunder, daß ich nicht weiterkomme
Code: Alles auswählen
ui.treeWidget->setColumnCount(4);
QStringList headers;
headers << tr("Subject") << tr("Default") << tr("Default") << tr("Default");
ui.treeWidget->setHeaderLabels(headers);Das ist doch ein Qt-Bug (4.14), oder? Ist dann ja kein Wunder, daß ich nicht weiterkomme