QTreeWidgetItem 不显示默认三角形 && 自定义TreeWidgetItem的widget && 子项Item与顶层TopLevelItem顶端对其----Item设置QSS有影响。

//1-不显示默认三角形----来自网友的答案, 很好用。
//如果不想要展开折叠图标(三角图标),可以用以下代码
{
//隐藏根节点项前的图标(展开折叠图标)
ui.treeWidget->setRootIsDecorated(false);
//如果只是隐藏根点的展开折叠图标而子节点保留,则只需要上面语句
ui.treeWidget->setStyleSheet("QTreeView::branch:has-children:!has-siblings:closed,\
QTreeView::branch:closed:has-children:has-siblings{border-image: none; image: none;}QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings{border-image: none; image: none;}");

}

//如果想把展开折叠图标(三角图标)换成自己的图标,可以用以下代码
{
ui.treeWidget->setStyleSheet("QTreeView::branch:has-children:!has-siblings:closed,\
QTreeView::branch:closed:has-children:has-siblings{border-image: none; image: url(:/QtXmlTest/Resources/image/plus.png);}QTreeView::branch:open:has-children:!has-siblings,QTreeView::branch:open:has-children:has-siblings{border-image: none; image: url(:/QtXmlTest/Resources/image/minus.png);}");

}
原文链接:https://blog.csdn.net/jxbinwd/article/details/77507627
//2--自定义TreeWidgetItem

调用QTreeWidget::setItemWidget就可以了,并且,不会丧失QTreeWidgetItem跟鼠标事件的各默认联动功能,依旧存在。
//3--子项Item与顶层TopLevelItem顶端对其
treeWidget->setIndentation(0);

在我们设置QTreeWidgetItem的QSS时候,默认Item和QTreeWidget左边边框之间是两个部分。看起来很不好看。或者是,想设置当前激活的、或选中的Item的左边框QSS时, Item的边框效果,距离QTreeWidget的左边框是有间距的,很不好看。

调用QTreeWidget::setIndentation(0), 然后设置不同层级Item的Padding-left,让Text保持不同层级的效果。非常好的方案。

原文地址:https://www.cnblogs.com/azbane/p/12111051.html

时间: 2024-11-01 12:30:15

QTreeWidgetItem 不显示默认三角形 && 自定义TreeWidgetItem的widget && 子项Item与顶层TopLevelItem顶端对其----Item设置QSS有影响。的相关文章

解决百度云推送通知,不显示默认Notification

问题:百度云推送通知,不显示默认Notification 描述:采用推送消息的方式,可以在onMessage方法里面获取到推送的消息.另外推送通知也有获取到内容,后台日志也有show private notification字样.但是默认Notification却不能显示. 解决: 1.自定义CustomPushNotificationBuilder 2.我们这边的问题在于在mainfest里面没有设置icon

PyQt5在QWidget窗体中显示Qwidget的自定义类

[概览] 1.显示原生Qwidget 1)不使用布局(绝对定位) 2)使用布局 2.显示Qwidget的自定义类 1)不使用布局(绝对定位)       2)使用布局 [知识点] 1.显示原生Qwidget 1)不使用布局(绝对定位) 这种情况下,原生QWidget部件在实例化时必须带parent参数,当然parent = self,即:  self.widget = QWidget(self) 1 class MyWindow(QWidget): 2 def __init__(self, pa

Tomcat:解决Tomcat可以在eclipse启动,却无法显示默认页面的操作

解决Tomcat可以在eclipse启动,却无法显示默认页面的操作 今天在eclipse中配置好tomcat后访问不到它的主页,但是能运行自己的项目,一直找不到原因,百度之后最后解决了这个问题,总结如下: 原因在于eclipse是调用Tomcat的接口模拟tomcat而不是真正的启动它,因此显示不了Tomcat主页 解决办法如下: 一:双击控制台的Tomcat,如图所示: 二:修改以下两个地方: 三:若上图的单选框修改不了,如图所示: 那么最简单的解决办法就是:右击控制台的Tomcat选dele

DefaultFilesMiddleware中间件如何显示默认页面

DefaultFilesMiddleware中间件如何显示默认页面 DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容.我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会将这个文件响应给客户端.如果我们能够将针对目录的请求重定向到这个默认文件上,一切就迎刃而解了.实际上DefaultFilesMiddleware中间件的实现逻辑很简单,它采用URL重写的形式修改了当前请求的地址,即将针对目录的URL

Glide加载圆形图片第一次只显示默认图片

Glide加载圆形图,又设置了默认图,很多时候第一次加载的时候只显示默认图.下面的方案可以解决.\ Glide.with(AudioDetailActivity.this) .load(cover) .placeholder(R.drawable.audio_default_normal) .into(new SimpleTarget<GlideDrawable>() { @Override public void onResourceReady(GlideDrawable resource,

ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面

DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容.我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会将这个文件响应给客户端.如果我们能够将针对目录的请求重定向到这个默认文件上,一切就迎刃而解了.实际上DefaultFilesMiddleware中间件的实现逻辑很简单,它采用URL重写的形式修改了当前请求的地址,即将针对目录的URL修改成针对默认文件的URL.[本文已经同步到<ASP.NET Cor

图片不存在就显示默认图片

有些时候我们需要批量显示数据库中的图片,数据库中保存的当然是图片的路径.但是如果发现某些图片不存在,网页上的红叉会显得很难看,这时候我们可以选择显示默认图片来代替,这样会显得非常有人性化.鹤峰县烟草专卖局 利用 image 对象的 onerror 事件来判断,出错则更换 image 对象的 src 为默认图片的 URL. <img src="http://www.nowamagic.net/images/new_logo.png" onerror="javascript

Toast的用法(可以设置显示时间,自定义布局的,线程中的Toast)

       自定义的Toast类 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dp" android

textarea显示默认值

点击不显示默认值,鼠标离开如果没有内容就显示默认值,如果有内容就显示内容. <textarea class="area" onfocus="if(value=='请输入具体内容'){value=''}" onblur="if (value ==''){value='请输入具体内容'}">请输入具体内容</textarea> 输入框圆角样式: border-radius: 10px;