【发布时间】:2014-11-06 14:53:33
【问题描述】:
我使用了我自己的子类中的以下 itemChange 函数来触发信号:
QVariant WayPointItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (change == QGraphicsItem::ItemSelectedChange){
emit selcState(value.toBool());
}
return QGraphicsItem::itemChange(change, value);
}
selcState 信号连接到一个槽为:
void WaypointLineItem::toggleText(bool value)
{
if (wp->isSelected()) //wp is the waypointitem which emit the signal selcState()
text.show();
else
text.hide();
}
我发现当我选择一个waypointitem时,它确实触发了itemChange函数,并且QGraphicsItem::ItemSelectedChange的bool值也是正确的。 但是,当涉及到插槽时, wp->isSelected() 返回的值是不同的。 怎么会这样,有什么解决办法吗?
【问题讨论】:
标签: c++ qt qgraphicsitem