我有一个包含两个项目(单词和数字)的列表。此列表将使用tablewidget 呈现。
我的目标是生成一个有两列且必要行数的表格,其中单词所在的列标题应该比数字列标题更大。
我可以使用"resize columns to content"来实现,但我希望表格在调整大小后不会出现白色空白区域。
为了创建gui代码,我使用QtDesigner。谢谢。
我有一个包含两个项目(单词和数字)的列表。此列表将使用tablewidget 呈现。
我的目标是生成一个有两列且必要行数的表格,其中单词所在的列标题应该比数字列标题更大。
我可以使用"resize columns to content"来实现,但我希望表格在调整大小后不会出现白色空白区域。
为了创建gui代码,我使用QtDesigner。谢谢。
有几种 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)
这将固定第二列的宽度,并确保第一列自动调整大小以填充剩余空间(但防止用户进行任何其他调整)。
在IT技术中,解决这个问题的最佳方案是,在Qt5
中您需要使用setSectionResizeMode
而不是setResizeMode
:
tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
或者
tabv.horizontalHeader().setSectionResizeMode(1)