实现功能:
椭圆形显示一系列图片,鼠标点击到图片上时,可以拖动图片,图片按椭圆形轨道循环显示。
我的实现思路是:
首先计算鼠标位置,判断是否点击到了图片,
在点击图片的时候,根据鼠标移动,重新计算图片显示位置,重新描画图片。
在松开鼠标的时候,再根据鼠标位置让图片显示落到最近的点上。
这思路非常麻烦,有没有省事的办法?
------最佳解决方案--------------------
这种动画效果 要么用animation 要么用QGraphicsView
------其他解决方案--------------------
你可以参照例子里的机器人那个
你应该把轨道算好了 再移动
------其他解决方案--------------------
计算是避免不了的 你说的麻烦是指哪里
------其他解决方案--------------------
补充一下:用C++实现,QML的话比较好实现,
------其他解决方案--------------------
qt例子的qml里不是有这样的吗
------其他解决方案--------------------
我就是算不明白。忘了椭圆怎么算了,正百度呢。
------其他解决方案--------------------
不用QML的亲。
------其他解决方案--------------------
现在用animation 实现的。
做法是首先算好了初始位置,
比如我有8个图片的话,为
for(int i=0;i<8;i++){
qread a = i *2 *3.1415/8;
x = 170*sin(a);
y = 70*cos(a);
}
但是在鼠标拖动的时候,根据鼠标的X,Y坐标,算出鼠标点击图片,和有效移动位置,和位置纠错,这些把我算迷糊了。
有没有直接让图片按着预先设计的轨迹和鼠标走的方法,就像QML里的似的。