我没有任何代码要显示,因为这是一年多以前的事了。我认为我使用了一个计时器。它工作得不是很专业。你会怎么做才能让它成为一个平滑的操作符?
我已经能够有效地绘制网格(即仅在视图中)。我只需要捕捉算法。
我没有任何代码要显示,因为这是一年多以前的事了。我认为我使用了一个计时器。它工作得不是很专业。你会怎么做才能让它成为一个平滑的操作符?
我已经能够有效地绘制网格(即仅在视图中)。我只需要捕捉算法。
这是我mouseReleaseEvent
的 forQGraphicsItem
派生类。Grid 的步长等于 5:
void RadBox::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
double xx=x();
double yy=y();
if((int)xx / 5 != xx/5.) xx=5.0*round(xx/5.);
if((int)yy / 5 != yy/5.) yy=5.0*round(yy/5.);
setPos(xx,yy);
QGraphicsItem::mouseReleaseEvent(event);
emit moveBox(id,scenePos().x(),scenePos().y()); // you don't need this line, it's specific to my program
}
重新实施QGraphicsItem::itemChange()
以对QGraphicsItem::ItemPositionChange
更改做出反应。不要忘记设置QGraphicsItem::ItemSendsGeometryChanges
标志。