gpt4 book ai didi

c++ - 如何禁用 QQuickItem 的更新

转载 作者:行者123 更新时间:2023-11-28 05:00:45 24 4
gpt4 key购买 nike

我有一个QQuickItem派生类

// Class
class MyQQuickItem : public QQuickItem {
Q_OBJECT
}

// updatePaintNode in cpp function
QSGNode * MyQQuickItem::updatePaintNode(QSGNode * oldNode, UpdatePaintNodeData * updatePaintNodeData) {

// draw UI logic
return node;
}

// QML component
MyQQuickItem {
id: my_quick
objectName: "myquickitem"
width : 500
height : 500
}

我在单独的 UI 上执行某些操作,这会导致 MyQQuickItemupdatePaintNode 被触发。如果我像这样在 cpp 端有一个指向 MyQQuickItem 的指针,

QQuickItem * my_quick_item_ptr = m_qml_engine->rootObjects()[0]->findChild<QQuickItem*>("myquickitem");

如何在我不希望调用 MyQQuickItem 的 updatePaintNode 时禁用它?
第二个问题:如果是,如何将其恢复原状?

最佳答案

如果以及何时调用 updatePaintNode() 很可能是场景图内部的东西,实际上并不打算修改。

也许尝试做一些侵入性较小的事情,比如:

QSGNode * MyQQuickItem::updatePaintNode(QSGNode * oldNode, UpdatePaintNodeData * updatePaintNodeData) {
if (doNotUpdate) return oldNode;
// draw UI logic
return node;
}

关于c++ - 如何禁用 QQuickItem 的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46095768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com