我正在将QGraphicsPixmapItems添加到我的场景中,我可以看到当我选择项目时,它会获得白色虚线选择矩形,但我很难从这个选择中获取任何数据。以下是我将它添加到场景中的方法。
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都有与之关联的结构数据,当我选择QGraphicsScene内部的QGraphicsPixmapItem时,我需要能够检索该数据。如果在选择pixmapitem时显示选择矩形,是不是有一些简单的方法可以根据这个事实向我返回信息?指向所选内容的指针?
我确实已经实现了一个mousePressEvent方法,但我正在努力获得与之相关的任何内容。
void MainWindow::mousePressEvent(QMouseEvent *event){
qDebug() << "Clicked" << endl;
}
当我运行应用程序时,除了点击我的pixmapitems之外,我看到我的场景中到处都是Clicked。
我已经尝试过每个版本的mousePressEvents和实际做某事的版本,只要我不按我的pixmapitems就做一些事情。
答案 0 :(得分:0)
感谢我在评论中收到的帮助,我将发布最终对我有用的内容。
void MainWindow::drawImage(curTarget *newTarget)
{
QGraphicsPixmapItem *tgt = new QGraphicsPixmapItem
tgt = scene->addPixmap(newTarget->myIcon);
tgt->setFlag(QGraphicsItem::ItemIsSelectable, true);
scene->addItem(tgt);
}
添加新功能......
void MainWindow::whatIsSelected(){
QDebug() <<scene->selectedItems() << endl;}
然后我将场景连接到其他地方的窗口......
QObject::connect(scene, SIGNAL(selectionChanged()), this, SLOT(whatIsSelected);