2013-07-01 30 views
8

N列の列を持つQTableWidgetがあります。列の数が設定されると、自動的にQTableWidget全体が塗りつぶされます。列の数をN/2列に動的に変更しようとすると、各列のサイズは変更されません。この結果、QTableWidgetの右半分は空白になります。QTableWidgetの列と行の塗りつぶし表のサイズ変更

逆に、列数を2 * Nにリセットした場合、列幅が適切に調整され、QTableWidgetが満たされます。

空白を持つQTableWidgetなしで列と行の数をどのようにリセットすることができますか?

答えて

21

QHeaderViewのサイズ変更モードを設定しようとしましたか?

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

編集:Qtの5で、指摘したように:

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

。しかし、代わりに 'setSectionResizeMode'を使うべきです。 'setResizeMode'はQt5では利用できません。しかし、行数や列数を更新するたびにモードをリセットする必要があるようです。 – sj755

+0

アプリケーションによっては、[QHeaderView :: setStretchLastSection(true)](http://qt-project.org/doc/qt-5.0/qtwidgets/qheaderview.html#stretchLastSection-prop)もオプションになる場合があります。 – Phlucious

関連する問題