我有一个函数,我在 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);
}
}
0 只是一个任意键值,需要更改为实际表示键值的东西,但为了这个例子,它很好