我正在使用 PySide 开发计算机应用程序,并且正在使用 QTableWidget。假设我的表有 3 列,但它们包含的数据非常不同,比如(对于每一行)第一列中有一个长句子,然后是最后两列中的 3 位数字。我想让 我的表调整大小,以便根据数据调整其大小,或者至少能够 将列大小设置为(比如)可用空间的 70/15/15% 。
做这个的最好方式是什么 ?
我试过 table.horizontalHeader().setResizeMode(QHeaderView.Stretch)
阅读 这个问题 后,但它使 3 列大小相同。
我也试过 table.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents)
感谢 Fabio 的 评论,但它没有根据需要填充所有可用空间。
Neither Interactive
, Fixed
, Stretch
, ResizeToContents
from the QHeaderView documentation seem to give me what I need (see second edit).
任何帮助将不胜感激,即使它是针对 Qt/C++ 的!非常感谢你。
编辑: 我找到了一种解决方法,但它仍然不是我想要的:
header = table.horizontalHeader()
header.setResizeMode(QHeaderView.ResizeToContents)
header.setStretchLastSection(True)
如果有一个 setStretchFirstSection
方法会更好,但不幸的是似乎没有。
编辑 2:
表中唯一可以修改的是最后一列,用户可以在其中输入数字。红色箭头表示我想要的东西。
原文由 AdrienW 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可以通过为每列设置 调整大小模式 来解决。第一部分必须拉伸以占用可用空间,而最后两部分只需根据其内容调整大小:
PyQt5:
PyQt6/PyQt5:
PyQt4: