10

我有一个包含两个项目的列表,一个单词和一个数字。这个列表将使用 tablewidget 呈现。

我的目标是生成一个包含两列和必要行的表格,但是包含单词的列的标题应该大于数字列。

我可以使用调整列大小来调整内容,但我希望在调整大小后表格周围没有白色空白区域。

为了创建 gui 代码,我正在使用 QtDesigner.Thanks。

4

2 回答 2

20

该类的一些方法QHeaderView可能会执行您想要的操作。最简单的是:

table.horizontalHeader().setStretchLastSection(True)

这将确保最后一列自动调整大小以适应表格中的可用空间,而其他列的宽度保持不变(并且可以由用户调整大小)。

或者,有设置ResizeMode列的方法。

对于 Qt5:

table.setColumnWidth(1, 80)
table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)

对于 Qt4:

table.setColumnWidth(1, 80)
table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch)

这将固定第二列的宽度,并确保自动调整第一列的大小以填充剩余空间(但防止用户进行任何其他调整大小)。

于 2011-12-20T18:53:09.647 回答
8

最好的解决方案,Qt5你必须使用setSectionResizeMode而不是setResizeMode

tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

或者

tabv.horizontalHeader().setSectionResizeMode(1)
于 2015-07-29T13:47:17.360 回答