Я создавал приложение QT, но ударил по месту. Я создал собственный класс сцены, производный от QGraphicsScene, из которого я добавляю на экран свои предметы, такие как автомобиль, автобус и т. Д.
void Scene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
if (mouseEvent->button() != Qt::LeftButton)
return;
DiagramItem *item;
switch (myMode) {
case InsertItem:
item = new DiagramItem(myItemType, myItemMenu);
addItem(item);
item->setPos(mouseEvent->scenePos());
emit itemInserted(item);
break;
Как видно из приведенного выше кода, у меня есть класс DiagramItem, производный от QGraphicsPixmapItem для добавления другого элемента в сцену.
switch (myDiagramType) {
case Bus:
setPixmap( QPixmap( Dir+"/images/bus1.jpg" ));
break;
case Car:
setPixmap( QPixmap( Dir+"/images/car4scene.png" ));
break;
case Truck:
Что я хочу достичь здесь, так это то, что когда я выбираю свой предмет со сцены (автомобиль или автобус), я хочу знать, какое транспортное средство было выбрано: автомобиль, автобус или грузовик. Я понятия не имею, как это сделать. Может кто-нибудь мне помочь . Я получаю выбранный предмет, как это со сцены.
void MainWindow :: itemSelected (QGraphicsItem * item) // сигнал, отправленный со сцены.
{
DiagramItem *ItemSelect = qgraphicsitem_cast<DiagramItem *>(item);
// хотелось бы знать, что ItemSelect - это машина, автобус или любое другое транспортное средство
}