我有一个QTableWidget,它有N个列,当设置列数时,它们会自动填充整个QTableWidget。当我尝试将列数动态更改为N/2列时,每一列的大小不会发生变化。这导致了QTableWidget右半部分仅是空白。
相反,如果我重置列数为2*N,则列宽会适当调整并填充QTableWidget。
我想知道如何在不留下任何空白的情况下重设QTableWidget的列数和行数?
我有一个QTableWidget,它有N个列,当设置列数时,它们会自动填充整个QTableWidget。当我尝试将列数动态更改为N/2列时,每一列的大小不会发生变化。这导致了QTableWidget右半部分仅是空白。
相反,如果我重置列数为2*N,则列宽会适当调整并填充QTableWidget。
我想知道如何在不留下任何空白的情况下重设QTableWidget的列数和行数?
你尝试过设置 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);
setSectionResizeMode
而不是setResizeMode
,因为在Qt5中已经不再支持setResizeMode
了。不过,每次更新行或列的数量之后似乎需要重新设置宽度/高度调整模式。 - sj755