Название: Неадекватно работает QGraphicsItem::contains Отправлено: jerdeks от Сентябрь 13, 2011, 16:57 Есть главные айтем - main_item. На нем лежат остальные объекты. Хочу их перетаскивать. Функции itemAt недостаточно, потому что она определяет не точную границу фигуры, а прямоугольник, в который она вписана. Ну то есть элипс например таскается за несуществующий угол. Функция contains определяет границы правильно, но иногда возвращает false, даже если тыкаю явно в центр фигуры 0_о Собственно, в этом вся проблема - то таскаются айтемы, то нет. Объясните, что я не так делаю, пожалуйста :)
lockScene - чтобы таскать main_item, собственно для вопроса это не нужно Код
А, да. view это static_cast<QGraphicsView*>(this->parent) Название: Re: Неадекватно работает QGraphicsItem::contains Отправлено: iroln от Октябрь 07, 2011, 23:02 Код: QList<QGraphicsItem *> QGraphicsScene::items ( const QPointF & pos, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform & deviceTransform = QTransform() ) const Флаг ItemSelectionMode устанавливаете в ContainsItemShape Единственное, этот метод возвращает список элементов. Надо потом из списка выбрать (найти) нужный. И ещё он для сцены, то есть надо делать преобразование координат pos в координаты сцены если pos в координатах вида. |