查看完整版本: [-- 使用qml做一个圆形滑槽的slider --]

QTCN开发网 -> Qt嵌入式开发 -> 使用qml做一个圆形滑槽的slider [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

chaihq 2018-08-06 11:05

使用qml做一个圆形滑槽的slider

坑爹的UI要求做一个圆形滑槽的slider,小弟一筹莫展,跪求各位大神帮忙,感激涕零!

dannys 2018-08-06 11:46
没明白你的意思,[attachment=19306]你是要上面那种全是圆的,还是下面那种只是两边是圆角的.
下面那种用Slider控制自己定义下style就好,上面那种就自己重新写组件把

chaihq 2018-08-06 11:50
[attachment=19309]

这样的,轨迹是圆弧形的

chaihq 2018-08-06 11:52
dannys:没明白你的意思,[图片]你是要上面那种全是圆的,还是下面那种只是两边是圆角的.
下面那种用Slider控制自己定义下style就好,上面那种就自己重新写组件把
 (2018-08-06 11:46) 

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

dannys 2018-08-06 14:17
感觉用canvas画有点烦,可以去弄个滑槽图片,网上找或者用PS自己画个滑槽


chaihq 2018-08-06 14:26
dannys:感觉用canvas画有点烦,可以去弄个滑槽图片,网上找或者用PS自己画个滑槽
 (2018-08-06 14:17) 

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

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

never_forget 2018-08-07 09:09
这个你不要用拖拽的方式来实现,既然滑块的运动轨迹是固定的,你可以尝试用动画来实现,滑块围绕着某个点做圆周运动,这样是可以的,然后就是 Qt 例子里面是有介绍轨迹运行的,pathview 你也可以尝试~

yuyu414 2018-08-07 17:52
简化成求圆弧上任意一点的坐标,坐标有了,随便移动到哪都可以了

chaihq 2018-08-14 10:16
不能沉

zzs0829 2018-09-23 21:10
这种滑块的设计可以考虑行为和显示分离,通过计算点击和移动的坐标计算弧度或角度比例,显示部分无非就是滑块围绕一个圆心进行rotation的变化。


查看完整版本: [-- 使用qml做一个圆形滑槽的slider --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled