Qt 以相同数量拖动不同QGraphicsCenes中的多个QGraphicsSite
我有自己的类(mygraphicscene、MyGraphicsView、MyGraphicsItem),它们是从qgraphicscene、QGraphicsView和QGraphicsItem派生的 在我的主窗口中,我创建了九(9)个MyGraphicscene实例,如MyGraphicsView的九个实例所示。所有九个MyGraphicsCenes都包含指向彼此的指针 如何在一个MyGraphicscene中拖动MyGraphicsSitem实例,然后以相同的数量/距离/向量自动拖动某些MyGraphicsSitem实例(在其余八个MyGraphicscene中) 我的第一个想法是重新实现MyGraphicsItem::itemChange(change==QGraphicsItem::ItemPositionChange),然后为MyGraphicsItem的其余实例(包含在其他mygraphicscene中)调用setPos()。但是,这将不起作用,因为我将得到无限递归(setPos()也将触发itemChange(),包括原始MyGraphicsItem)Qt 以相同数量拖动不同QGraphicsCenes中的多个QGraphicsSite,qt,qgraphicsview,qgraphicsitem,qgraphicsscene,Qt,Qgraphicsview,Qgraphicsitem,Qgraphicsscene,我有自己的类(mygraphicscene、MyGraphicsView、MyGraphicsItem),它们是从qgraphicscene、QGraphicsView和QGraphicsItem派生的 在我的主窗口中,我创建了九(9)个MyGraphicscene实例,如MyGraphicsView的九个实例所示。所有九个MyGraphicsCenes都包含指向彼此的指针 如何在一个MyGraphicscene中拖动MyGraphicsSitem实例,然后以相同的数量/距离/向量自动拖动某些M
如果您为QGraphicsItem定义派生类(我想您已经有了,对吧?)并重新实现
mouseMoveEvent
,那么它会对所有9个对象调用move方法,那么有经验的Qt开发者还有其他想法吗?
请记住,您可以使用QMouseEvent
的所有属性,例如按钮()
,pos()
希望有帮助 如果您为QGraphicsItem定义派生类(我想您已经有了,对吧?),并重新实现
mouseMoveEvent
,那么它会对所有9个对象调用move方法
请记住,您可以使用QMouseEvent
的所有属性,例如按钮()
,pos()
希望有帮助 我确实知道,您可以在多个视图中使用相同的
qgraphicscene
。因此,如果您只是想对同一事物拥有多个视图,请在同一场景中调用MyGraphicsView
。我确实知道,您可以在多个视图中使用相同的qgraphicscene
。因此,如果您只是想对同一事物拥有多个视图,请使用同一场景调用MyGraphicsView
void MyGraphicsItem::mouseMoveEvent( QMouseEvent *event )
{
if (event->buttons() & Qt::LeftButton) {
QPoint pos = event->pos();
// ...
}
}