Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: lenina15i25 от Июль 15, 2017, 16:04



Название: QGraphicsScene / mouseEvent / Selected
Отправлено: lenina15i25 от Июль 15, 2017, 16:04
Добрый день. Существует связанный QGraphicsScene с QGraphicsView. Я перегрузил событие мыши, чтобы рисовать на сцене. Но я не понимаю, как вернуть указатель на выделенный нарисованный объект. По умолчанию двойным щелчком мыши выделяется объект, я устанавливаю флаг: line-> setFlag (QGraphicsItem :: ItemIsSelectable).
Объект: QGraphicsLineItem * line = new QGraphicsLineItem .
Помогите вернуть указатель на выбранный объект,что бы можно было изменить его и просмотреть координаты линии (начало и конец).


Название: Re: QGraphicsScene / mouseEvent / Selected
Отправлено: Racheengel от Июль 15, 2017, 20:13
QGraphicsScene::selectedItems()


Название: Re: QGraphicsScene / mouseEvent / Selected
Отправлено: lenina15i25 от Июль 15, 2017, 21:30
QGraphicsScene::selectedItems()
Пробовал, даже с учетом, того, что возвращает адрес на QList;

void MyScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
    QList <QGraphicsItem*> it;
    it = this->QGraphicsScene::selectedItems();
    qDebug() << it << endl;
    qDebug() << "Line" << endl;
}


Название: Re: QGraphicsScene / mouseEvent / Selected
Отправлено: Racheengel от Июль 16, 2017, 01:54
Код:
auto itemlist = selectedItems();
if (itemlist.count() > 0)
{
  QGraphicsLineItem * line = dynamic_cast<QGraphicsLineItem*>(itemList.first());
  if (line != NULL)
  {
  ... // line is here
  }
}