Ich füge QGraphicsPixmapItems zu meiner Szene hinzu, und ich kann sehen, dass wenn ich das Objekt anwähle, es das weiß gestrichelte Auswahlrechteck bekommt, aber ich habe Mühe, irgendwelche Daten aus dieser Auswahl zu bekommen. Hier ist, wie ich es der Szene hinzufüge.Identifizieren, welches QPixmapItem ausgewählt wurde
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);
}
Jede PixmapItem, die ich zu der Szene hinzufügen hat Daten struct mit ihm verbunden, und ich muss in der Lage sein, diese Daten abzurufen, wenn ich auf dem QGraphicsPixmapItem wählen innerhalb des QGraphicsScene. Wenn das Auswahlrechteck angezeigt wird, wenn das Pixmapitem ausgewählt ist, gibt es dann keine einfache Möglichkeit, basierend auf dieser Tatsache Informationen an mich zurückzugeben? Ein Zeiger auf was ist vielleicht ausgewählt?
Ich habe eine MousePressEvent-Methode implementiert, aber ich habe Mühe, etwas relevantes dabei zu bekommen.
void MainWindow::mousePressEvent(QMouseEvent *event){
qDebug() << "Clicked" << endl;
}
Wenn ich die app laufen, sehe ich außer Clicked überall in meiner Szene, als ich auf meinem pixmapitems klicken.
Ich habe jede Version der mousePressEvents ausprobiert und die, die eigentlich etwas tun, nur etwas tun solange ich nicht auf meine Pixmapitems drücke.
QGraphicsScene :: selectedItems() ? – jpnurmi
'mousePressEvent (Ereignis QGraphicsSceneEvent *) { qDebug() << scene-> selectedItems(); } ' gibt nichts zurück – bauervision
Anstatt" mousePressEvent "zu überschreiben, erstellen Sie eine Funktion, die die aktuelle Auswahl überprüft und sie mit dem [' QGraphicsScene :: selectionChanged'] verbindet (http://doc.qt.io/qt-5/) qgraphicsscene.html # selectionChanged) Signal. –