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

Gia*_*nou 9 python resize pyqt qtablewidget qheaderview

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

我的目标是生成一个包含两列并且具有必要行的表,但是具有单词的列的标题应该大于数字列.

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

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

ekh*_*oro 17

这个类有一些方法QHeaderView可能会做你想要的.最简单的是:

table.horizontalHeader().setStretchLastSection(True)
Run Code Online (Sandbox Code Playgroud)

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

或者,存在用于设置ResizeMode列的方法.

对于Qt5:

table.setColumnWidth(1, 80)
table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
Run Code Online (Sandbox Code Playgroud)

对于Qt4:

table.setColumnWidth(1, 80)
table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch)
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
Run Code Online (Sandbox Code Playgroud)

要么

tabv.horizontalHeader().setSectionResizeMode(1)
Run Code Online (Sandbox Code Playgroud)