《使用QSS美化QTreeView界面》:系列教程之五

本文属于《QTreeView使用系列教程》之一,欢迎查看其它文章。

 

本文中例子来自于Qt Style Sheets Examples

1、style1(QTreeView::item)

当鼠标悬停在item上时,可以通过item子控件设置背景。

style1.qss:

QTreeView {
    show-decoration-selected: 1;
}

QTreeView::item {
     border: 1px solid #d9d9d9;
    border-top-color: transparent;
    border-bottom-color: transparent;
}

QTreeView::item:hover {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1);
    border: 1px solid #bfcde4;
}

QTreeView::item:selected {
    border: 1px solid #567dbc;
}

QTreeView::item:selected:active{
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6ea1f1, stop: 1 #567dbc);
}

QTreeView::item:selected:!active {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6b9be8, stop: 1 #577fbf);
}

效果:

2、style2(QTreeView::branch)

QTreeView的分支使用::branch子控件样式化。下面的样式表在绘制分支时对各种状态进行颜色编码。

style2.qss:

QTreeView::branch {
        background: palette(base);
}

QTreeView::branch:has-siblings:!adjoins-item {
        background: cyan;
}

QTreeView::branch:has-siblings:adjoins-item {
        background: red;
}

QTreeView::branch:!has-children:!has-siblings:adjoins-item {
        background: blue;
}

QTreeView::branch:closed:has-children:has-siblings {
        background: pink;
}

QTreeView::branch:has-children:!has-siblings:closed {
        background: gray;
}

QTreeView::branch:open:has-children:has-siblings {
        background: magenta;
}

QTreeView::branch:open:has-children:!has-siblings {
        background: green;
}

效果:

3、style3(QTreeView::branch)

虽然上面例子它是丰富多彩,但是一个更有用的例子是使用以下图标方式。

style3.qss:

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

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

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

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

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

效果:

 


若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

本文涉及工程代码,公众号回复:34QssStyle,即可下载

在这里插入图片描述

  • 12
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
QTreeView::branch是用于设置QTreeView中树形结构的分支(branch)的样式的伪类选择器。它可以用于设置分支的背景颜色、字体颜色等属性。根据引用\[1\]和引用\[2\]的内容,可以看出QTreeView::branch有以下几个状态: 1. 默认状态:没有任何伪类选择器的情况下,应用默认样式。 2. adjoins-item状态:当分支与某个item相邻时,设置此状态。可以通过设置background属性来改变背景颜色。根据引用\[1\]中的样式,adjoins-item状态的背景颜色为绿色。 3. closed状态:项目处于关闭状态,即非展开项。可以通过设置color属性来改变字体颜色。根据引用\[2\]中的样式,closed状态的字体颜色为红色。 此外,根据引用\[3\]中的样式,还可以根据分支的具体情况设置不同的背景颜色,包括有无兄弟节点、是否相邻、是否有子节点等等。具体的样式设置可以根据实际需求进行调整。 #### 引用[.reference_title] - *1* *2* [【翻译 + 整理】Qt样式表详解(10):伪状态](https://blog.csdn.net/kenfan1647/article/details/115549004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [《使用QSS美化QTreeView界面》:系列教程之五](https://blog.csdn.net/u011832525/article/details/105915415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值