2013-07-01 17 views
8

Mam QTableWidget z liczbą N kolumn, które po ustawieniu liczby kolumn automatycznie wypełniają cały QTableWidget. Gdy próbuję dynamicznie zmieniać liczbę kolumn na N/2 kolumn, rozmiar każdej kolumny nie zmienia się. Powoduje to, że prawidłowa połowa QTableWidget jest jedynie pustym polem.Zmiana rozmiaru QTableWidget Kolumny i wiersze do wypełnienia Tabela

Podejrzewam, że gdybym to zrobił, zresetuj liczbę kolumn do 2 * N, szerokość kolumn odpowiednio się dostosuje i wypełni QTableWidget.

Zastanawiam się, w jaki sposób można zresetować liczbę kolumn i wierszy bez QTableWidget posiadające jakiekolwiek białe znaki?

Odpowiedz

21

Czy próbowałeś ustawić tryb zmiany rozmiaru QHeaderView?

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

Edit: Jak wskazano w Qt 5:

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

To działa. Jednak zamiast tego należy użyć 'setSectionResizeMode'. 'setResizeMode' nie jest dostępny w Qt5. Jednak wydaje się, że muszę resetować tryb za każdym razem, gdy aktualizuję wiersz lub kolumnę. – sj755

+0

[QHeaderView :: setStretchLastSection (true)] (http://qt-project.org/doc/qt-5.0/qtwidgets/qheaderview.html#stretchLastSection-prop) może również być opcją, w zależności od aplikacji. – Phlucious