在PyQt6中,要使 QTableWidget 的列自动适应内容宽度,可以使用 QHeaderView 的 setSectionResizeMode 方法。这个方法可以设置表头(header)的尺寸调整模式,其中 QHeaderView.Stretch 和 QHeaderView.ResizeToContents 是两种常用的模式。- QHeaderView.Stretch:将所有列的宽度调整为填满整个 QTableWidget 的宽度。
- QHeaderView.ResizeToContents:根据内容自动调整每列的宽度。
以下是一个简单的示例,展示如何设置 QTableWidget 以自动适应内容宽度:[Python] 纯文本查看 复制代码 from PyQt6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QHeaderView
app = QApplication([])
table = QTableWidget(5, 3) # 5行3列的表格
# 填充数据
for i in range(5):
for j in range(3):
item = QTableWidgetItem(f"Item {i}-{j}")
table.setItem(i, j, item)
# 设置列宽自适应内容
header = table.horizontalHeader()
header.setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
table.show()
app.exec()
在这个示例中,创建了一个5行3列的 QTableWidget,并使用 setSectionResizeMode 方法设置了水平表头的尺寸调整模式为 ResizeToContents,这意味着列宽会根据内容自动调整。如果想要让某些列使用不同的尺寸调整模式,可以针对那些特定的列单独调用 setSectionResizeMode 方法。例如,如果您想要第一列根据内容调整宽度,而其他列平均分配剩余空间,可以这样设置:[Python] 纯文本查看 复制代码 header.setSectionResizeMode(0, QHeaderView.ResizeMode.ResizeToContents) # 第一列根据内容调整宽度
for i in range(1, table.columnCount()):
header.setSectionResizeMode(i, QHeaderView.ResizeMode.Stretch) # 其他列平均分配宽度
|