如何更改 QTreeView 小部件中的图标

How can i change icons in QTreeView widget

如何更改这些图标?我在 treeView 设置中找不到更改它的道具。

Qt中有QTreeView::drawBranches函数。使用此功能,您可以使用指定的 QPainter:

在树项的左侧绘制任意图标
void QTreeView::drawBranches(QPainter *painter, const QRect &rect,
                             const QModelIndex &index) const

另一个选项是自定义样式表,如 documentation 中所述。使用这些样式表,您可以轻松地将所需图像添加为图标。

以上文档link提供了此类自定义的示例:

QTreeView::branch:has-siblings:!adjoins-item {
    border-image: url(vline.png) 0;
}

QTreeView::branch:has-siblings:adjoins-item {
    border-image: url(branch-more.png) 0;
}

QTreeView::branch:!has-children:!has-siblings:adjoins-item {
    border-image: url(branch-end.png) 0;
}

QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings {
        border-image: none;
        image: url(branch-closed.png);
}

QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings  {
        border-image: none;
        image: url(branch-open.png);
}

因此,他们得到以下结果: