QT QGraphicsScene的拖动问题

wyjblue 2014-07-01 04:13:16
各位大神,我用view scene 绘图Map,在view端鼠标右键按住拖动scene 中的map移动 拖动 ;已经重现了dragEnterEvent( QGraphicsSceneDragDropEvent *event ) 也设置了 setAcceptDrops(true); 还是拖动进步来dragenterevent事件
路过的大神指点 如何实现 QGraphicsScene的拖动
...全文
1237 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
clz2012 2016-12-07
  • 打赏
  • 举报
回复 1
你那个dragEnterEvent不是处理移动graphicsScene的,而是处理有拖拽事件进来的时候,比如你把一个文件拖拽到graphicsScene里去这种功能。 你要整体移动graphicsScene就像很多图像浏览器如果图像比较大就可以通过鼠标左键按着移动图像,你只需要在graphicsView中实现mouseMoveEvent就可以,移动的话就直接设置scrollbar的数值

void Ui::ProjectView::mousePressEvent(QMouseEvent *event)
{
	m_startPos = event->pos();
	QGraphicsView::mousePressEvent(event);
}
void Ui::ProjectView::mouseMoveEvent(QMouseEvent *event)
{
	if((event->buttons() & Qt::LeftButton) && qApp->keyboardModifiers() == Qt::ControlModifier)
	{
		QPoint delta = m_startPos - event->pos();
		int hValue = horizontalScrollBar()->value();
		int vValue = verticalScrollBar()->value();
		horizontalScrollBar()->setValue(delta.x() + hValue);
		verticalScrollBar()->setValue(delta.y() + vValue);
		m_startPos = event->pos();
	}
	QGraphicsView::mouseMoveEvent(event);
}
龙型胖哥88 2016-08-07
  • 打赏
  • 举报
回复
兄弟如何实现拖动的,请教下
wyjblue 2014-07-02
  • 打赏
  • 举报
回复
急用,请路过的大神帮忙看看 因为画的图大 需要在客户端用鼠标拖动 初学者 没有思路 各位大神 指点哈 江湖救急 没继承QGraphicsItem来绘制,我画在了qgraphicsscene 的默认函数 背景 前景层中 资料中scene是管理item的 我怎么才能移动scene中的所有item 求指点 上代码 3QU
wyjblue 2014-07-01
  • 打赏
  • 举报
回复
求关注

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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