如何让QTableView填充100%的宽度?

25 qt qtableview

这是我的软件的打印屏幕:

如您所见,第一个QTableVIew标题不占用宽度的100%.实际上,场地右侧有一个小的垂直白色空间size.

如何让标题占据宽度的100%QTableView

小智 37

如果您使用的是Qt 5,QHeaderView::setResizeMode()则不再可用.相反,你可以使用QHeaderView::setSectionResizeMode().只需为每一列调用它:

ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
Run Code Online (Sandbox Code Playgroud)

  • **不要为每一列调用`QHeaderView :: setSectionResizeMode()`.**要自动将传递的拉伸应用于所有列,只需调用该方法*,而不是*迭代地传递显式列索引:例如,`ui- > tableView-> horizo​​ntalHeader() - > setSectionResizeMode(QHeaderView ::弹力);`.因此,上述"for"循环简化为简单的单行程.另见[此相关答案](/sf/answers/2393306611/). (8认同)
  • Qt 5.1对我有用.在使用此代码设置部分调整大小模式之前,您是否已将模型设置为tableview?如果还没有,那么你还没有任何列,这段代码什么都不做. (3认同)

Pav*_*hov 19

使用view->horizontalHeader()->setStretchLastSection(true)使最后一列扩展到自由空间.

另外,用于view->horizontalHeader()->setResizeMode(QHeaderView::Stretch)为列提供相同的宽度.

  • @ user2429940如果您正在使用QtCreator/Designer,您可以在属性部分下找到它 (3认同)

小智 14

这里仅适用于:

ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
Run Code Online (Sandbox Code Playgroud)

我正在使用Qt 5.2!