请选择 进入手机版 | 继续访问电脑版

QGraphicsView中的QGraphicsItem鼠标拖动

[复制链接]
小浣熊 发表于 2021-1-3 12:06:13 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

gif录制软件没有录到鼠标
方法1:通过设置QGraphicsTextItem的属性实现(推荐)

  1.     QGraphicsScene scene;    QGraphicsTextItem *text = scene.addText("Hello, world!");    //继续鼠标拖动    text->setAcceptHoverEvents(true);    text->setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable);        QGraphicsView view(&scene);    //鼠标拖动改变位置    view.setDragMode(QGraphicsView::RubberBandDrag);    view.show();
复制代码
方法2:重写鼠标事件

继续QGraphicsItem,重写mousePressEvent、mouseMoveEvent和mouseReleaseEvent三个函数。
  1. void BreakerItem::mousePressEvent( QGraphicsSceneMouseEvent* event ){        m_mousePressed=true;        m_mousePressedPoint=this->scenePos()-event->scenePos();}void BreakerItem::mouseMoveEvent( QGraphicsSceneMouseEvent* event ){        if(m_mousePressed==true)        {                this->setPos(event->scenePos()+m_mousePressedPoint);        }}  void BreakerItem::mouseReleaseEvent( QGraphicsSceneMouseEvent* event ){        m_mousePressed=false;}
复制代码
来源:https://blog.csdn.net/qq_26480033/article/details/112060526
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )