TableWidget自动调整列宽
时间: 2023-11-27 13:53:12 浏览: 176
自动调整列宽的列表控件
5星 · 资源好评率100%
可以通过设置 `QHeaderView` 的 `setSectionResizeMode` 方法来实现 `TableWidget` 列宽的自动调整。具体步骤如下:
1. 获取 `QHeaderView` 对象:`horizontalHeader()`
2. 设置 `QHeaderView` 的列宽自适应模式:`setSectionResizeMode(QHeaderView::ResizeToContents)`
3. 如果需要设置默认列宽,可以使用 `setDefaultSectionSize` 方法:`setDefaultSectionSize(100)`
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QHeaderView, QTableWidgetItem
app = QApplication([])
# 创建一个 4 行 3 列的表格
table = QTableWidget(4, 3)
table.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
# 设置表格内容
table.setItem(0, 0, QTableWidgetItem('Tom'))
table.setItem(0, 1, QTableWidgetItem('20'))
table.setItem(0, 2, QTableWidgetItem('Male'))
table.setItem(1, 0, QTableWidgetItem('Jerry'))
table.setItem(1, 1, QTableWidgetItem('18'))
table.setItem(1, 2, QTableWidgetItem('Female'))
table.setItem(2, 0, QTableWidgetItem('Lily'))
table.setItem(2, 1, QTableWidgetItem('22'))
table.setItem(2, 2, QTableWidgetItem('Female'))
table.setItem(3, 0, QTableWidgetItem('Lucy'))
table.setItem(3, 1, QTableWidgetItem('25'))
table.setItem(3, 2, QTableWidgetItem('Male'))
# 获取水平表头对象
header = table.horizontalHeader()
# 设置列宽自适应模式
header.setSectionResizeMode(QHeaderView.ResizeToContents)
# 设置默认列宽
header.setDefaultSectionSize(100)
table.show()
app.exec_()
```
运行后,可以看到表格的列宽已经自动调整为内容的宽度。如果需要设置默认列宽,可以修改 `setDefaultSectionSize` 方法的参数。
阅读全文