Есть главные айтем - main_item. На нем лежат остальные объекты. Хочу их перетаскивать. Функции itemAt недостаточно, потому что она определяет не точную границу фигуры, а прямоугольник, в который она вписана. Ну то есть элипс например таскается за несуществующий угол. Функция contains определяет границы правильно, но иногда возвращает false, даже если тыкаю явно в центр фигуры 0_о Собственно, в этом вся проблема - то таскаются айтемы, то нет. Объясните, что я не так делаю, пожалуйста
lockScene - чтобы таскать main_item, собственно для вопроса это не нужно
C++ (Qt)
void MyScene::mousePressEvent(QGraphicsSceneMouseEvent* mouseEvent) {
switch (mouseEvent->button()) {
case Qt::LeftButton :
if ((curItem = itemAt(mouseEvent->scenePos())) &&
curItem->contains(mouseEvent->scenePos()) &&
curItem != view->main_item)
lockCurItem = true;
lockScene = !lockCurItem;
break;
}
}
А, да. view это static_cast<QGraphicsView*>(this->parent)