我有一个包含两个项目的列表,一个单词和一个数字。这个列表将使用 tablewidget 呈现。
我的目标是生成一个包含两列和必要行的表格,但是包含单词的列的标题应该大于数字列。
我可以使用调整列大小来调整内容,但我希望在调整大小后表格周围没有白色空白区域。
为了创建 gui 代码,我正在使用 QtDesigner.Thanks。
我有一个包含两个项目的列表,一个单词和一个数字。这个列表将使用 tablewidget 呈现。
我的目标是生成一个包含两列和必要行的表格,但是包含单词的列的标题应该大于数字列。
我可以使用调整列大小来调整内容,但我希望在调整大小后表格周围没有白色空白区域。
为了创建 gui 代码,我正在使用 QtDesigner.Thanks。
该类的一些方法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)
这将固定第二列的宽度,并确保自动调整第一列的大小以填充剩余空间(但防止用户进行任何其他调整大小)。
最好的解决方案,Qt5
你必须使用setSectionResizeMode
而不是setResizeMode
:
tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
或者
tabv.horizontalHeader().setSectionResizeMode(1)