我正在使用 QTreeView 和 QItemDelegate 来重新实现大部分绘制例程。但是,展开/折叠按钮和同级/子线是由其他一些绘制例程自动绘制的。
什么在绘制它们,我该如何控制它?
编辑:
现在,Qt 按以下顺序绘制一个 QTreeView 项目:
[展开按钮] -- [复选框] -- [树项的其余部分]
我想按这个顺序画:
[复选框] -- [展开按钮] -- [树项的其余部分]
问题是我在 QItemDelegate 中的所有绘画都在展开按钮的右侧。
最佳答案
您可以使用 style sheet 更改它们.这是来自 Customizing QTreeView样式表引用中的示例:
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);
}
其中 png 文件名是您要使用的图像。
关于python - 绘制 TreeViewItem 展开按钮和兄弟/子线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7288790/