QT treewidget 展开折叠(分支)样式设置

本文介绍了如何使用Qt Style Sheets(QSS)来改变QTreeView中节点分支的样式。通过设置不同的状态,如`adjoins-item`、`has-siblings`、`open`和`close`,可以实现不同情况下的图像显示,例如不相邻节点显示竖线、有子节点的状态等。示例代码展示了如何结合使用这些状态以达到预期效果。

有时候觉得树的分支小三角不好看,可以用qss改变样式。

branch有五个选择:adjoins-item(不邻接),has-siblings(下面还有节点)。open(节点是展开的)。close(节点是关闭的),has-children (有子节点)。结合使用达到自己想要的效果。

实例1

选择 不邻接 就显示图片vline.png。

tree->setStyleSheet("QTreeView::branch:!adjoins-item {border-image: url(:/vline.png);}"

图片是一个竖杠。当树应用之后有这种效果,即不相邻就显示一个竖杠。

 示例2

下面还有节点的就显示一个竖杠

tree->setStyleSheet("QTreeView::branch:has-siblings {border-image: url(:/vline.png);}");

 示例3

结合使用

    tree->setStyleSheet("QTreeView::branch:has-siblings:!adjoins-item {border-image: url(:/vline.png);}" // 下方有节点并且相邻没有节点
                        
                    "QTreeView::branch:has-siblings:adjoins-item {border-image: url(:/branch-more.png);}" // 下方有节点并且相邻有节点
                        
                     "QTreeView::branch:!has-children:!has-siblings:adjoins-item {border-image: url(:branch-end.png) ;}" // 没有孩子节点、下方没有节点并且相邻有节点

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

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

 附一下每个图片的样子

参考官网:

Qt Style Sheets Examples | Qt Widgets 5.15.10 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值