QGraphicsItem selectedItems () пуст - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь получить предметы, но не могу работать с selectedItems (). В следующем коде qDebug возвращает «()» или cra sh, конечно, если я использую selectedItems.last ().

Я не понимаю, что делаю не так, я даже добавил foreach, чтобы убедиться, что элементы выбраны, но ничего. Следующий код взят из моего класса View.

 if (event->button() == Qt::LeftButton) {


            foreach(auto item, items(event->pos())) {
               item->setSelected(true);
            }

           qDebug()<< scene->selectedItems();

Спросите меня, могу ли я предоставить вам дополнительную информацию, у меня много кода и я действительно не знаю, что может быть связано с моей проблемой.

Более того, если я изменю foreach с помощью:

 foreach(auto item, items(event->pos())) {
               scene->removeItem(item);
            }

элемент БУДЕТ удален, поэтому он как бы выбирает элемент. Я не понимаю, почему setSelected (true) then selectedItems () не возвращает мне элементы.

1 Ответ

1 голос
/ 19 июня 2020

Я обнаружил, что мой предмет по умолчанию нельзя выбрать. Между прочим, это QGraphicsEllipseItem.

My selectedItems работает со следующим флагом:

 item->setFlag(QGraphicsItem::ItemIsSelectable);

Окончательный код:

foreach(auto item, items(event->pos())) {

                item->setFlag(QGraphicsItem::ItemIsSelectable);
                  item->setSelected(true);

            }
...