qtreewidget设置第二列固定宽度30px,其余为第一列
时间: 2024-03-27 08:35:20 浏览: 103
您可以使用QTreeWidget的setItemWidget方法来设置每个单元格的控件。您可以为第二列的所有单元格创建一个QLabel控件,并将其宽度设置为30像素,然后将它们设置为第二列的控件。为第一列的所有单元格创建另一个QLabel控件,并将其设置为第一列的控件。以下是一个示例代码片段,演示如何实现这一点:
```python
# 创建QTreeWidget对象
treeWidget = QTreeWidget()
# 设置列数为2
treeWidget.setColumnCount(2)
# 循环设置每一行
for i in range(5):
# 创建两个QLabel控件
label1 = QLabel()
label2 = QLabel()
# 设置第一列控件的文本
label1.setText("Item " + str(i))
# 设置第二列控件的文本,并将其宽度设置为30像素
label2.setText("Info " + str(i))
label2.setFixedWidth(30)
# 创建一个QTreeWidgetItem对象,并将两个控件添加到它中
item = QTreeWidgetItem()
item.setTextAlignment(0, Qt.AlignLeft | Qt.AlignVCenter)
item.setTextAlignment(1, Qt.AlignLeft | Qt.AlignVCenter)
item.setFlags(item.flags() & ~Qt.ItemIsEditable)
treeWidget.addTopLevelItem(item)
treeWidget.setItemWidget(item, 0, label1)
treeWidget.setItemWidget(item, 1, label2)
```
在这个示例代码中,我们使用了QTreeWidget的setItemWidget方法来为每个单元格设置控件。我们首先创建了两个QLabel控件,一个用于第一列,一个用于第二列。我们将第一列控件的文本设置为“Item i”,其中i是当前行的索引。我们将第二列控件的文本设置为“Info i”,并将其宽度设置为30像素。接下来,我们创建一个QTreeWidgetItem对象,并将两个控件添加到它中。最后,我们使用setItemWidget方法将控件设置为相应的单元格。
阅读全文