可能是一个棘手的问题,但我找不到答案。
我需要知道何时选择QGraphicsItem。必须有一个被调用的方法。
我知道QGraphicsItem::itemChange()
但是经常被调用。
有更好的方法吗?
THX
编辑:有了这个
if(change == ItemSelectedChange && scene()){
cout << "haha " << i++ << endl;
}
每次选择更改都会收到两个电话。
答案 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)