选择QGraphicsItem时调用什么方法

Mat*_*ler 8 qt qgraphicsitem

可能是一个技巧问题,但我找不到答案.

我需要知道何时选择QGraphicsItem.必须有一个被调用的方法.

我知道,QGraphicsItem::itemChange()但它经常被称为.

有更好的方法吗?

谢谢

编辑:有了这个

if(change == ItemSelectedChange && scene()){
    cout << "haha " << i++ << endl;
}
Run Code Online (Sandbox Code Playgroud)

每次选择更改都会收到两个电话.

Ant*_*ony 13

您应该value在QGraphicsItem :: itemChange方法中考虑.你想要的可能是这样的:

QVariant YourItem::itemChange(GraphicsItemChange change, const QVariant &value)
{
    if (change == QGraphicsItem::ItemSelectedChange)
    {
        if (value == true)
        {
            // do stuff if selected
        }
        else
        {
            // do stuff if not selected
        }
    }

    return QGraphicsItem::itemChange(change, value);
}
Run Code Online (Sandbox Code Playgroud)