• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
我是张洪铭我是熊博士
时光静好,与君同;细水长流,与君语
博客园    首页    新随笔    联系   管理    订阅  订阅

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保持不同层级的效果。非常好的方案。

 

posted @ 2019-12-28 11:08  我是张洪铭我是熊博士  阅读(2112)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3