QTableWidget展开列以使用固定宽度的最后一列填充

2024-10-04 09:29:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试一些我认为很简单的事情,但就是找不到办法来做。 提供的图像显示了我的目标。它本质上只是一个具有以下行为的QTableWidget:

  • 填满可用空间
  • 右侧的固定宽度列
  • 其余的列我希望能够手动调整大小(因此它们必须按比例拉伸,以便填充所有空间)

我尝试过的事情:

  • 设置setStretchLastSection(True)。这将填充空间,但如果设置了此选项,则无法控制其宽度
  • 重写resizeEvent并手动计算和设置所有内容。这似乎是一个非常混乱的做事方式,这通常意味着有一个更简单的方法

有没有一个简单的方法来实现这一点

QtableWidget Desired Columns


Tags: 方法图像true目标宽度选项空间手动
2条回答

我设法得到了一些有用的东西

self.myTable.horizontalHeader().setSectionResizeMode(0, QtWidgets.QHeaderView.Interactive)
self.myTable.horizontalHeader().setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
self.myTable.horizontalHeader().setSectionResizeMode(2, QtWidgets.QHeaderView.Fixed)

一般规则是将所有头设置为Interactive,倒数第二个设置为Stretch,最后一个设置为Fixed

您可以始终ResizeToContents所有列都使用self.my_table.verticalHeader().setSectionResizeMode(QHeaderView.ResizeToContents),然后将固定宽度应用于最后一列

相关问题 更多 >