PyQt:我如何为各个标题设置不同的标题大小?

时间:2011-12-20 01:33:26

标签: python pyqt resize qtablewidget qheaderview

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

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

我可以使用resize列来调整内容,但是我希望在调整大小后桌子周围没有白色的空白空间。

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

2 个答案:

答案 0 :(得分:16)

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)

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

答案 1 :(得分:5)

最佳解决方案,在Qt5中您必须使用setSectionResizeMode代替setResizeMode

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

tabv.horizontalHeader().setSectionResizeMode(1)