个人实现的可任意折叠QToolBox——AdvancedToolBox

可任意折叠的ToolBox实现

Github地址

在这里插入图片描述

(下面介绍直接复制仓库的Readme)

由于QToolBox不支持同时展开和折叠tab,功能比较弱。所以用Qt重新实现了一个更好的tool box,仅支持垂直布局。

支持特性:

  • 每个tab页支持展开和折叠

  • 可鼠标移动handle调整tab大小(类似QSplitter)

  • 可以拖拽tab标题重排tab

  • 可以通过style sheet设置tab标题、separator handle、expanding icon等样式

布局实现

AdvancedToolBox内部使用手动布局,每个标签页区域有三个元素:separator、title、container。

  • separator,可以通过style sheet设置颜色等,可以通过鼠标拖拽调整相关tab的尺寸

  • title,主要绘制展开或折叠状态、图标、标题文字,点击可以折叠和展开,展开和折叠设置了动画

  • container,用户设置的Widget的容器,使用这层容器的目的是为了在展开或折叠时,避免过多的resize event。

考虑到需要拖拽排序,每个标签页区域没有使用独立布局,AdvancedToolBox窗口触发布局时,对每个标签页的三个元素按顺序计算高度并布局。

待支持功能

  • 增加展开和折叠时信号
  • 标签页标题右侧支持自定义QAction
  • 展开和折叠时,应该触发widget的show和hide事件
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值