0
QTouchEvents로 QGraphicsObject를 구현하고 sceneEvent 함수를 다시 구현했습니다.QGraphicsObject에 대한 sceneEvent의 위치에 대한 계산을 수행 할 수없는 이유는 무엇입니까?
bool LynxItem::sceneEvent(QEvent *event)
{
//qDebug() << "LynxItem::sceneEvent:" << itemId;
switch (event->type()) {
case QEvent::Gesture:
{
qDebug() << "LynxItem::sceneEvent:Gesture" << itemId;
return gestureEvent(static_cast<QGestureEvent*>(event));
break;
}
case QEvent::TouchBegin:
case QEvent::TouchUpdate:
case QEvent::TouchEnd:
{
qDebug() << "LynxItem::sceneEvent:TouchUpdate" << itemId;
QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
QList<QTouchEvent::TouchPoint> touchPoints = touchEvent->touchPoints();
const QTouchEvent::TouchPoint &touchPoint1 = touchPoints.last();
/* This doesn't allow two objects to move at the same time */
//setPos (touchPoint1.scenePos() - touchPoint1.pos());
/* This does work but the item is always moved from top left */
setPos(touchPoint1.scenePos());
event->accept();
break;
}
default:
return QGraphicsItem::sceneEvent(event);;
}
return true;
}
내 문제는 내가 항목을 만질 때 오른쪽 상단의 항목이 접촉 지점에옵니다. 나는 터치 한 지점을 내부에서 상쇄하고 싶습니다. 그러나 내가 할 때 한 번에 하나의 항목 만 이동할 수 있습니다.