这个treewidget样式真是写得让人心碎,主因是那个天杀的表头,真是块古里古怪的硬骨头,令人抓狂,一直找不到给表头设定背景图的方法,让我一度决定弃用tree。

后来表头的属性找到了,下拉条又找不到。第一次接触stylesheet,完全是边做边学,不知所谓,又不想不做,默认的样式我就是看不过眼,处女座的人就是比较神经质。​

网上关于treewidget的样式介绍少之又少,不知道是不是因为大牛们都采用了treeview等其他方法去做了,或者说是tree太简单,只有我那么弱智还要去网上搜。​

总之,经过2天坚持不懈的泣血努力,总算是把这个控件的样式完完全全换掉了。​

特此记录,以资鼓励。​​

——————————————————————————————

树形列表控件,主要是对“表头”“列表背景” “下拉条”“鼠标扫动”做处理,以达到自定义效果。​​

不废话了,直接上代码。

m_QTreeWidget->setStyleSheet("​​

//列表背景

QTreeWidget{background-image:url(./image/treelistbk.jpg);}\ ​​

//每一项的身高 鼠标扫过 按下的变色

QTreeWidget::item{height:40px;}\

QTreeWidget::item:hover{}\​​

//表头背景 表头身高

QHeaderView::section{border-image: url(./image/header-test.png); height:40px;} "

);

列表的表头,给图片背景!天知道居然要用Qheaderview!!!天杀的!!!​

//下拉条的样式设置  具体内容 参考上一篇

http://blog.sina.com.cn/s/blog_8a621fc80102vizs.html

m_QTreeWidget->verticalScrollBar()->setStyleSheet("");​

m_QTreeWidget->horizontalScrollBar()->setStyleSheet("");​

完毕。其实很简单吧。​

但是却花了很长时间。​

俺写的第一个stylesheet。呼呼。虽浪费2天时间,人都快疯掉,但好歹最终成功了。

也算是入门了。

————————————————————————————​

以下是我的其他设置,作为一个初学者,都这两天慢慢琢磨的,留给自己看。

//字体

m_pQTreeWidget->setFont(QFont("Helvetica"));​

//表头字体 居中 (表内项目的字体居中要去add item的地方进行设置,目前没找到别的好办法。。。嘤嘤嘤。。。。)

m_pQTreeWidget->headerItem()->setFont(0,QFont("Helvetica",18,QFont::Bold));

m_pQTreeWidget->headerItem()->setFont(1,QFont("Helvetica",18,QFont::Bold));

m_pQTreeWidget->headerItem()->setTextAlignment(0,Qt::AlignHCenter | Qt::AlignVCenter); ​

m_pQTreeWidget->headerItem()->setTextAlignment(1,Qt::AlignHCenter

Qt::AlignVCenter); ​​

//表头不许移动,不许点击,不许排序。。。。哼哼哈。在我地盘的,你就得听我的!

setHeaderMovable(false);

m_pQTreeWidget->header()->setClickable(false);

m_pQTreeWidget->setFrameShape(QFrame::NoFrame); //设置无边框这样才可以自定义treewidget背景图

//表头可点击,点击后可排序

#if 0

//setHeaderHidden(true); //去掉表头

m_pQTreeWidget->header()->setClickable(true); //点击头自动排序

m_pQTreeWidget->setSortingEnabled(true); //用来设置是否可以排序

m_pQTreeWidget->sortItems(0, Qt::AscendingOrder); //id属性,即第0列,升序排列

#endif​

​​

----------------------------------------------------------------------

by the way,整理代码的时候发现了,有个很变态的地方。​

当这一句setFrameShape(QFrame::NoFrame);若写在设置横向滚动条的样式之前,则横向滚动条就出不来了,横向滚动条本来是自动出现的。

(虽然我本来就不想要它出现。但我觉得哦,也许样式应该写在最前面。)

http://blog.sina.com.cn/s/blog_8a621fc80102vj09.html

Qt treewidget样式的自定义(转)的更多相关文章

  1. WPF自定义控件与样式(2)-自定义按钮FButton

    一.前言.效果图 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 还是先看看效果 ...

  2. WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 自定义 ...

  3. Qt 鼠标样式特效探索样例(一)——利用时间器调用QWidget.move()函数

    Qt 鼠标样式特效探索样例(一)       心血来潮,突然想在Qt里玩一把鼠标样式,想到在浏览网页时,经常看到漂亮的鼠标动画,于是今天摸索着乱写个粗糙的demo,来满足自己的好奇心. 效果图 方案要 ...

  4. WPF 自定义ComboBox样式,自定义多选控件

    原文:WPF 自定义ComboBox样式,自定义多选控件 一.ComboBox基本样式 ComboBox有两种状态,可编辑和不可编辑状态.通过设置IsEditable属性可以切换控件状态. 先看基本样 ...

  5. android中样式和自定义button样式

    1)自定义button样式 一.采用图片方式 首先新建Android XML文件,类型选Drawable,根结点选selector,自定义一个文件名. 随后,开发环境自动在新建的文件里加了select ...

  6. Qt之界面(自定义标题栏、无边框、可移动、缩放)

    效果 自定义标题栏 titleBar.h #ifndef TITLEBAR_H #define TITLEBAR_H #include <QLabel> #include <QPus ...

  7. C/C++ Qt TreeWidget 嵌套节点操作技巧

    在上一篇博文<C/C++ Qt TreeWidget 单层树形组件应用>中给大家演示了如何使用TreeWidget组件创建单层树形结构,并给这个树形组件增加了右键菜单功能,接下来将继续延申 ...

  8. Qt StyleSheet样式表实例(转)

    QT论坛看到的,收藏一下! 在涉及到Qt 美工的时候首先需要掌握CSS 级联样式表. 下面将通过几个例子来介绍一下怎样使用Qt中的部件类型设计.自定义的前台背景与后台背景的颜色: 如果需要一个文本编辑 ...

  9. C/C++ Qt TreeWidget 单层树形组件应用

    TreeWidget 目录树组件,该组件适用于创建和管理目录树结构,在开发中我们经常会把它当作一个升级版的ListView组件使用,因为ListView每次只能显示一列数据集,而使用TableWidg ...

随机推荐

  1. 关于InputStream类的available()方法

    要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据流里有多少个字节可以读取.需要注意的是,如果这个方法用在从本地文件读取数据时,一般不 ...

  2. en笔记音标

      清辅音和浊辅音区别 开音节和闭音节区别 1 2 3 4 5 6 7 a o e i u w y 开音节 /eɪ/ /əu/ /i:/ /aɪ/ Ju: /aɪ/ 闭音节 /æ/ /ɒ/ /ə/ / ...

  3. cas 认证管理器

    CAS-默认的认证管理器:AuthenticationManagerImpl <bean id="authenticationManager" class="org ...

  4. 如何获取显示器的EDID信息

    Q1: 为什么要写这篇文章? A1:在最近的工作中遇到了不少问题,其中很多都是和EDID相关的.可以说,作为一家以“显示”为生的企业,我们时时刻刻在与EDID打交道.EDID这东西很简单,但是如果不了 ...

  5. mkfs.ext3 option

    mkfs.ext3 OPTIONS -b block-size Specify  the  size  of blocks in bytes.  Valid block-size values are ...

  6. SQL Server 对比数据库差异

    一.视图和存储过程比较 [原理]利用系统表“sysobjects"和系统表“syscomments”,将数据库中的视图和存储过程进行对比.系统表"sysobjects"之 ...

  7. (转载)SAPI 包含sphelper.h编译错误解决方案

    [转]SAPI 包含sphelper.h编译错误解决方案 在使用Microsoft Speech SDK 5.1开发语音识别程序时,包含了头文件“sphelper.h”和库文件“sapi.lib”.编 ...

  8. 驱动程序多线程 PsCreateSystemThread

    内核函数PsCreateSystemThread负责创建新线程.该函数可以创建两种线程,一种是用户线程,它属于当前进程中的线程.另一种是系统线程,系统线程不属于当前用户进程,而是属于系统进程,一般PI ...

  9. 玩转X-CTR100 l STM32F4 l SD卡FatFs文件系统

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] X-CTR100控制器具有SD卡接口,本教程使用免费 ...

  10. Redis学习第三课:Redis Hash类型及操作

    Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是O(1)(平均).hash特别适用于存储对象.相较于对象的每个字段存在单个string类型.将一个对象 ...