• 4708阅读
  • 10回复

[提问]使用qml做一个圆形滑槽的slider [复制链接]

上一主题 下一主题
离线chaihq
 

只看楼主 倒序阅读 楼主  发表于: 2018-08-06
坑爹的UI要求做一个圆形滑槽的slider,小弟一筹莫展,跪求各位大神帮忙,感激涕零!
离线dannys

只看该作者 1楼 发表于: 2018-08-06
没明白你的意思,你是要上面那种全是圆的,还是下面那种只是两边是圆角的.
下面那种用Slider控制自己定义下style就好,上面那种就自己重新写组件把
离线chaihq

只看该作者 2楼 发表于: 2018-08-06


这样的,轨迹是圆弧形的
离线chaihq

只看该作者 3楼 发表于: 2018-08-06
回 dannys 的帖子
dannys:没明白你的意思,[图片]你是要上面那种全是圆的,还是下面那种只是两边是圆角的.
下面那种用Slider控制自己定义下style就好,上面那种就自己重新写组件把
 (2018-08-06 11:46) 

就是自己写不出来才求助的嘛
离线dannys

只看该作者 4楼 发表于: 2018-08-06
感觉用canvas画有点烦,可以去弄个滑槽图片,网上找或者用PS自己画个滑槽

离线chaihq

只看该作者 5楼 发表于: 2018-08-06
回 dannys 的帖子
dannys:感觉用canvas画有点烦,可以去弄个滑槽图片,网上找或者用PS自己画个滑槽
 (2018-08-06 14:17) 

滑块和滑槽的图已经有了,只是不知道怎么去设置滑块的轨迹为圆弧,drag.axis属性只接受沿x轴或者沿y轴拖动
离线dannys

只看该作者 6楼 发表于: 2018-08-06
没想到什么特别好的办法,感觉要么计算出曲线的函数公式,通过函数来限定滑块的滑动范围,或者将滑块包在一个item里面,这个item的大小和位置与滑槽一样大,通过改变item的rotate属性来改变滑块的位置
离线never_forget

只看该作者 7楼 发表于: 2018-08-07
这个你不要用拖拽的方式来实现,既然滑块的运动轨迹是固定的,你可以尝试用动画来实现,滑块围绕着某个点做圆周运动,这样是可以的,然后就是 Qt 例子里面是有介绍轨迹运行的,pathview 你也可以尝试~
离线yuyu414

只看该作者 8楼 发表于: 2018-08-07
简化成求圆弧上任意一点的坐标,坐标有了,随便移动到哪都可以了
离线chaihq

只看该作者 9楼 发表于: 2018-08-14
不能沉
离线zzs0829

只看该作者 10楼 发表于: 2018-09-23
这种滑块的设计可以考虑行为和显示分离,通过计算点击和移动的坐标计算弧度或角度比例,显示部分无非就是滑块围绕一个圆心进行rotation的变化。
快速回复
限100 字节
 
上一个 下一个