Qt之自定义带游标的QSlider

Posted 草上爬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt之自定义带游标的QSlider相关的知识,希望对你有一定的参考价值。

最近翻看6年前写了一篇关于QSlider的博客:Qt自定义带游标的slider,在滑块正上方显示当前值
发现存在很多问题,比如游标的坐标不准确;如果游标宽度稍大,滑到Slider最左或最右的时候会显示不全;游标不够美观。
PS:这里有个漂亮的Slider样式表https://blog.csdn.net/caoshangpa/article/details/53389517

一.效果

于是今天再实现了一遍,依然是子类化QSlider,效果如下,支持设置游标的尺寸:

 二.实现

这一次的实现比之前简洁很多,只需要重新paintEvent和mouseMoveEvent就能完全达到想要的效果,因为QSlider自带isSliderDown方法能判断鼠标是否在滑块(handle)上按下
因为在滑块上hover需要显示游标,因此在构造函数中需要添加setMouseTracking(true);这里最最关键的是如何获取滑块的rect,

以上是关于Qt之自定义带游标的QSlider的主要内容,如果未能解决你的问题,请参考以下文章

QSlider - 如何为空间着色

Qt之自定义菜单

Qt之自定义检索框

Qt之自定义托盘

26.QT-模型视图之自定义委托

Qt之自定义布局管理器(QCardLayout)