GraphicsItem 鼠标点击事件出错??

yangjin123 2010-12-01 08:50:06
我在场景中创建并添加了三个项 代码如下:
QPixmap p1,p2,p3;
PicItem *item1=new PicItem(p1);
t_scene->addItem(item1);
item1->setPos(100,100);

PicItem *item2=new PicItem(p2);
t_scene->addItem(item2);
item2->setPos(200,200);

PicItem *item3=new PicItem(p2);
t_scene->addItem(item3);
item3->setPos(300,300);

PicItem类继承GraphicsItem类 部分成员函数如下:
void PicItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
QPointF start(100,100);
QPointF end(0,0);
addPositionAnimation(this,start,end);
}
void PicItem::addPositionAnimation(PicItem *item,QPointF start,QPointF end)
{
QPropertyAnimation* propertyAnimation = new QPropertyAnimation(item, "pos");
propertyAnimation->setDuration(1000);
propertyAnimation->setStartValue(start);
propertyAnimation->setEndValue(end);
propertyAnimation->setEasingCurve(QEasingCurve::InCirc);
propertyAnimation->start(QAbstractAnimation::DeleteWhenStopped);

}
问题:当第一次点击这三个项的中的任何一项,这项的位置会发生变化(调用了addPositionAnimation), 但随后再点击 剩下两项 时 依然是第一次点击的项位置发生变化 不知道为什么啊????
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2010-12-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yangjin123 的回复:]
谢谢。。。加上这句 GraphicsItem::mousePressEvent(event);是什么用意啊 ??
[/Quote]
就是调用父类的mousePressEvent函数,改函数中实现了很多必须操作。
yangjin123 2010-12-26
  • 打赏
  • 举报
回复
谢谢。。。加上这句 GraphicsItem::mousePressEvent(event);是什么用意啊 ??
hitexam 2010-12-25
  • 打赏
  • 举报
回复
void PicItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
QPointF start(100,100);
QPointF end(0,0);
addPositionAnimation(this,start,end);
GraphicsItem::mousePressEvent(event);
}
zhu_xz 2010-12-15
  • 打赏
  • 举报
回复
看看是哪个PicItem接收到了鼠标点击事件?
jxliuyunpeng 2010-12-15
  • 打赏
  • 举报
回复
调试跟踪一下

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧