簡體   English   中英

QGraphicsItem itemChange函數與項目的狀態不匹配嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM