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