选择QGraphicsItem时调用什么方法

时间:2012-04-23 19:44:34

标签: qt qgraphicsitem

可能是一个棘手的问题,但我找不到答案。

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

我知道QGraphicsItem::itemChange()但是经常被调用。

有更好的方法吗?

THX

编辑:有了这个

if(change == ItemSelectedChange && scene()){
    cout << "haha " << i++ << endl;
}

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

2 个答案:

答案 0 :(得分:13)

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

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);
}

答案 1 :(得分:0)