Перехват сигнала selectionChanged () объекта QGraphicsScene - PullRequest
3 голосов
/ 15 ноября 2011

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

  QGraphicsScene* scene = new QGraphicsScene();

  connect(scene, SIGNAL(selectionChanged()), this, SLOT(SelectionChanged()));
  this->graphicsView->setScene(scene);
  this->graphicsView->setDragMode(QGraphicsView::RubberBandDrag);

но мой слот SelectionChanged () никогда не вызывается. Есть идеи как это сделать?

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Как отмечается в комментариях к ответу @webclectic, резиновая полоса QGraphicsView предназначена для выбора QGraphicsItems.

. Для получения координат резиновой ленты вам нужно унаследовать QGraphicsView, а затем выполнитьинструкции на QRubberBand странице справочника , сохраняющие координаты при нажатии и отпускании мыши, а затем подайте сигнал с QRect точек.

1 голос
/ 15 ноября 2011

Для того, чтобы сигнал selectionChanged излучался всякий раз, когда выбираются некоторые элементы в сцене. Для выбора должен быть установлен флаг QGraphicsItem::ItemIsSelectable.

Вы уверены, что элементы можно выбрать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...