qtreewidget设置列内容居中
时间: 2023-07-01 17:12:22 浏览: 481
要设置QTreeWidget的列内容居中,可以使用QTreeWidget的setItemWidget()方法和QStandardItemModel的setData()方法。具体步骤如下:
1. 创建一个QStandardItemModel对象,并设置QTreeWidget的模型为该对象。
2. 使用QStandardItemModel的setHeaderData()方法设置列标题。
3. 使用QStandardItemModel的setItem()方法设置每个单元格的内容。
4. 使用QStandardItemModel的setData()方法设置单元格的对齐方式为居中。
下面是示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem, QHeaderView, QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qt
app = QApplication([])
# 创建QTreeWidget对象
tree = QTreeWidget()
tree.setColumnCount(3)
tree.setHeaderLabels(['Name', 'Age', 'Gender'])
# 创建QStandardItemModel对象
model = QStandardItemModel()
tree.setModel(model)
# 设置列标题
model.setHeaderData(0, Qt.Horizontal, 'Name')
model.setHeaderData(1, Qt.Horizontal, 'Age')
model.setHeaderData(2, Qt.Horizontal, 'Gender')
# 设置每个单元格的内容
item1 = QStandardItem("John")
item2 = QStandardItem("25")
item3 = QStandardItem("Male")
model.appendRow([item1, item2, item3])
# 设置单元格的对齐方式为居中
for i in range(model.columnCount()):
model.setData(model.index(0, i), Qt.AlignCenter, Qt.TextAlignmentRole)
# 自适应列宽
tree.header().setSectionResizeMode(QHeaderView.ResizeToContents)
# 显示窗口
tree.show()
app.exec_()
```
运行代码后,可以看到第二列和第三列的内容都居中显示。
阅读全文