[英]QGraphicsItem itemChange function doesn't match with the item's state?
我從自己的子類中使用了以下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()返回的值是不同的。 這怎么可能發生,對此有什么解決方案嗎?
當所選狀態即將更改時,將調用QGraphicsItem::ItemSelectedChange
。 這意味着新選擇的狀態在value
參數中。
您必須對QGraphicsItem::ItemSelectedHasChanged
做出反應,所選狀態已經更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.