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

10

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

我的目标是生成一个有两列且必要行数的表格,其中单词所在的列标题应该比数字列标题更大。

我可以使用"resize columns to content"来实现,但我希望表格在调整大小后不会出现白色空白区域。

为了创建gui代码,我使用QtDesigner。谢谢。

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)

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


有没有一种使用Qt Designer实现这个的方法?有选项吗? - IordanouGiannis
设计师中没有“ResizeMode”选项,但有“setStretchLastSection”选项(即在属性编辑器中的“Header/horizontalHeaderStrechLastSection”)。 - ekhumoro

8

在IT技术中,解决这个问题的最佳方案是,在Qt5中您需要使用setSectionResizeMode而不是setResizeMode

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

或者

tabv.horizontalHeader().setSectionResizeMode(1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接