我一直在创建一个 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;
正如您从上面的代码中看到的那样,我有一个从 QGraphicsPixmapItem 派生的 DiagramItem 类,用于向场景添加不同的项目。
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' 是汽车或公共汽车或任何其他车辆
}