Я добавляю QGraphicsPixmapItems в свою сцену, и я вижу, что когда я выбираю элемент, он получает белый прямоугольник выбора, но я изо всех сил пытаюсь получить любые данные из этого выбора. Вот как я добавляю его на сцену.Определите, какой QPixmapItem был выбран
void MainWindow::drawImage(curTarget *newTarget){
QGraphicsPixmapItem *tgt = new QGraphicsPixmapItem;//new pixmap
tgt = scene->addPixmap(newTarget->myIcon);//assign pixmap image
tgt->setFlag(QGraphicsItem::ItemIsSelectable, true);
scene->addItem(tgt);
}
Каждый PixmapItem, что добавить к сцене есть данные структуры, связанные с ним, и мне нужно, чтобы иметь возможность получить эти данные при выборе на QGraphicsPixmapItem внутри QGraphicsScene. Если прямоугольник выделения отображается, когда выбран pixmapitem, нет ли там простого способа вернуть мне информацию на основе этого факта? Указатель на то, что выбрано, возможно?
У меня есть метод mousePressEvent, но я борюсь за то, чтобы что-то касалось этого.
void MainWindow::mousePressEvent(QMouseEvent *event){
qDebug() << "Clicked" << endl;
}
Когда я запустить приложение, я вижу щелчок везде в моей сцене, за исключением, когда я нажимаю на моей pixmapitems.
Я пробовал каждую версию mousePressEvents и те, которые на самом деле что-то делают, только делайте что-нибудь, пока я не нажимаю на свои pixmapitems.
QGraphicsScene :: SelectedItems() ? – jpnurmi
'mousePressEvent (событие QGraphicsSceneEvent *) { qDebug() << scene-> selectedItems(); } '}' ничего не возвращает – bauervision
Вместо того, чтобы переопределять 'mousePressEvent', создайте функцию, которая проверяет текущий выбор и связывает его с [' QGraphicsScene :: selectionChanged'] (http://doc.qt.io/qt-5/ qgraphicsscene.html # selectionChanged). –