调整QTableWidget列和行的大小以填充表格

13

我有一个QTableWidget,它有N个列,当设置列数时,它们会自动填充整个QTableWidget。当我尝试将列数动态更改为N/2列时,每一列的大小不会发生变化。这导致了QTableWidget右半部分仅是空白。

相反,如果我重置列数为2*N,则列宽会适当调整并填充QTableWidget。

我想知道如何在不留下任何空白的情况下重设QTableWidget的列数和行数?

1个回答

32

你尝试过设置 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);

4
这个方法可行。不过应该使用setSectionResizeMode而不是setResizeMode,因为在Qt5中已经不再支持setResizeMode了。不过,每次更新行或列的数量之后似乎需要重新设置宽度/高度调整模式。 - sj755
1
根据您的应用程序,QHeaderView::setStretchLastSection(true) 也可能是一个选项。 - Phlucious
myTable.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch) 在 pyqt5 中。 - giuliano-oliveira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接