C++ 如何将数据添加到椭圆QT

C++ 如何将数据添加到椭圆QT,c++,qt,C++,Qt,我有一个函数,其中我在QGraphicsView上绘制了一个椭圆到一个场景,在另一个函数中我有一个单击事件,检查你是否单击了与椭圆相同的XY,然后在地图上迭代,看看该XY是否被指定给一个特定的对象,如果返回的是该对象 然而,我一直在寻找一种方法,这样当一个椭圆被点击时,它只是有数据绑定到它,而不必搜索xy等来找到数据 我找到了函数setdata,它允许您将数据分配给项目,但是由于我的函数只是绘制和添加数据,我不知道如何实际提取与之相关的数据,我有一种感觉,这是因为我需要添加一个项目,这是一个场景

我有一个函数,其中我在QGraphicsView上绘制了一个椭圆到一个场景,在另一个函数中我有一个单击事件,检查你是否单击了与椭圆相同的XY,然后在地图上迭代,看看该XY是否被指定给一个特定的对象,如果返回的是该对象

然而,我一直在寻找一种方法,这样当一个椭圆被点击时,它只是有数据绑定到它,而不必搜索xy等来找到数据

我找到了函数setdata,它允许您将数据分配给项目,但是由于我的函数只是绘制和添加数据,我不知道如何实际提取与之相关的数据,我有一种感觉,这是因为我需要添加一个项目,这是一个场景,数据应该绑定到该项目,但我不知道如何做到这一点,搜索文档没有给我任何答案

这是我的职责

void GUI::paintDot(double x, double y, double Id)
{
    // Decalre a QPen for Painting dots
    QPen pen;

    // set the pen colour
    pen.setColor(Qt::white);

    if(x < m_height && y < m_width)
    {
        // Add ellipse at the x y position passed in
        scene2->addEllipse(x, y, 1.5, 1.5, pen, QBrush(Qt::SolidPattern))->setData(0, Id);
    }
}
void GUI::paintDot(双x、双y、双Id)
{
//用于绘制圆点的贴花
QPen笔;
//设置笔的颜色
钢笔颜色(Qt::白色);
if(xaddEllipse(x,y,1.5,1.5,pen,QBrush(Qt::SolidPattern))->setData(0,Id);
}
}

0只是一个任意键值,需要更改为实际表示键值的内容,但在本例中,您没有显示代码,您试图从中获取数据(例如,在缓存鼠标按下或其他内容的事件处理程序中)。所以我不确定你的问题到底是什么,但应该简单到:

QVariant v = ellipseObject->data(0);
然后根据输入的数据类型从中提取值。在您的情况下,您添加了一个双精度:

 double d = v.toDouble();
(显然,这两行可以组合在一起,而不需要变量
v