Qt中QTableView 使用QStandardItemModel 模型,如何自定义列的宽度
时间: 2024-02-25 22:51:57 浏览: 161
使用QStandardItemModel作为QTableView的数据模型时,可以通过QHeaderView的setSectionResizeMode方法设置列的自动适应模式,也可以通过setSectionResizeMode和setSectionResizeMode方法分别设置每一列的宽度和最小宽度。
例如,以下代码将第一列的宽度设置为100,第二列的最小宽度设置为50:
```python
# 创建QTableView和QStandardItemModel
table_view = QTableView()
model = QStandardItemModel()
# 添加数据到模型中
model.setItem(0, 0, QStandardItem("Item 1"))
model.setItem(0, 1, QStandardItem("Item 2"))
# 设置QTableView的模型
table_view.setModel(model)
# 设置第一列的宽度为100
table_view.setColumnWidth(0, 100)
# 设置第二列的最小宽度为50
table_view.horizontalHeader().setMinimumSectionSize(50)
```
需要注意的是,当设置列宽度时,如果列宽度过小,可能会导致无法显示完整内容。如果需要自适应列宽度,可以使用QHeaderView的setSectionResizeMode方法设置列的自动适应模式。例如,以下代码将所有的列都设置为自适应模式:
```python
# 将所有列设置为自适应模式
table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
```
这样,QTableView中的每一列都会根据内容自动调整宽度。
阅读全文