Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2177|回复: 0
打印 上一主题 下一主题

QTreeView使用总结8,风格美化,使用qss样式表

[复制链接]

1229

主题

2000

帖子

7607

积分

认证用户组

Rank: 5Rank: 5

积分
7607
跳转到指定楼层
楼主
发表于 2020-3-8 17:08:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://blog.csdn.net/dpsying/article/details/80271775
1,简介

本文介绍我在使用QTreeView过程中,常用的样式设置方法。
介绍内容是与我自己的项目界面风格相关,并不是完整的介绍所有样式。
关于QTreeView完整的样式设置,可以参考博主一去丶二三里的文章:
Qt之QSS(QTreeView)
http://blog.sina.com.cn/s/blog_a6fb6cc90102v7q8.html
2,常用样式设置

默认的QTreeView是这样的:


一般改造样式,会处理这些项:
表头:背景色、文字色、边框、高度
控件整体:背景色、文字色、边框
元素:背景色、文字色、边框、高度(处理普通、划过、按下三态的颜色)
分支:颜色或图片(普通、划过、按下三态)

一般需要整行颜色一致,设置show-decoration-selected:1

我的样式效果如下:


当然我项目里整个窗口的样式也是配套的,这里只演示QTreeView。
我整体搭配的灰黑色系,选中用蓝色,hover状态去掉了,也可用淡灰色。
间隔行效果也去掉了。

代码如下
  1. /**********QTreeView**********/
  2. QHeaderView::section {
  3.     height:25px;
  4.     color:white;
  5.     background:#505050;
  6.     border-left:0px solid gray;
  7.     border-right:1px solid gray;
  8.     border-top:0px solid gray;
  9.     border-bottom:0px solid gray;
  10. }

  11. QTreeView {
  12.     border:none;
  13.     background: #404040;
  14.     show-decoration-selected: 1;
  15. }
  16. QTreeView::item {
  17.     height: 25px;
  18.     border: none;
  19.     color: white;
  20.     background: transparent;
  21. }
  22. QTreeView::item:hover {
  23.     background: transparent;
  24. }
  25. QTreeView::item:selected{
  26.     background: #1E90FF;
  27. }
  28. QTreeView::branch {
  29.     background: transparent;
  30. }
  31. QTreeView::branch:hover {
  32.     background: transparent;
  33. }
  34. QTreeView::branch:selected {
  35.     background: #1E90FF;
  36. }
  37. QTreeView::branch:closed:has-children{
  38.     image: url(:/image/treeclose.png);
  39. }
  40. QTreeView::branch:open:has-children{
  41.     image: url(:/image/treeopen.png);
  42. }
复制代码

其中branch的折叠展开图标是自己画的:

也可以用另外一种+-号样式的:

这里展示了常用的QTreeView样式表的设置和效果,
如果需要更完整的控制方法,可以参考文章开头里的另外一位Qt专家的博客。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-30 08:47 , Processed in 0.055074 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表