2013-07-01 5 views
8

Ich habe ein QTableWidget mit einer Anzahl von N Spalten, die bei der Anzahl der Spalten automatisch das gesamte QTableWidget ausfüllen. Wenn ich versuche, die Anzahl der Spalten dynamisch in N/2-Spalten zu ändern, ändert sich die Größe der einzelnen Spalten nicht. Dies führt dazu, dass die rechte Hälfte des QTableWidget nichts als Leerzeichen ist.Ändern der Größe von QTableWidget Spalten und Zeilen zum Füllen Tabelle

Conversly, wenn ich es die Spaltenanzahl auf 2 * N zurücksetzen würde, passen sich die Spaltenbreiten entsprechend an und füllen das QTableWidget.

Ich frage mich, wie ich die Anzahl der Spalten und Zeilen zurücksetzen kann, ohne dass das QTableWidget Whitespace?

Antwort

21

Haben Sie versucht, den Größenänderungsmodus QHeaderView zu setzen?

QTableWidget* myTable = new QTableWidet; 
    QHeaderView* header = myTable->horizontalHeader(); 
    header->setResizeMode(QHeaderView::Stretch); 

Edit: Wie erwähnt, in Qt 5:

QTableWidget* myTable = new QTableWidet; 
    QHeaderView* header = myTable->horizontalHeader(); 
    header->setSectionResizeMode(QHeaderView::Stretch); 
+2

Dies funktioniert. "SetSectionResizeMode" sollte jedoch stattdessen verwendet werden. 'setResizeMode' ist in Qt5 nicht verfügbar. Allerdings muss ich den Modus jedes Mal neu einstellen, wenn ich die Zeilen- oder Spaltenanzahl aktualisiere. – sj755

+0

[QHeaderView :: setStretchLastSection (true)] (http://qt-project.org/doc/qt-5.0/qtwidgets/qheaderview.html#stretchLastSection-prop) könnte auch eine Option sein, abhängig von Ihrer Anwendung. – Phlucious

Verwandte Themen