我有一个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上执行某些操作会导致updatePaintNode
MyQQuickItem
被解雇。如果我在cpp一侧有一个指向MyQQuickItem的指针,那么
QQuickItem * my_quick_item_ptr = m_qml_engine->rootObjects()[0]->findChild<QQuickItem*>("myquickitem");
当我不想要它时,如何禁用MyQQuickItem
的updatePaintNode? strong>
次要问题:如果是,请问如何重新恢复?
答案 0 :(得分:1)
如果和updatePaintNode()
被调用的话很可能是场景图内部的东西,并不是真的有意修改。
也许尝试做一些不那么具有侵略性的事情:
QSGNode * MyQQuickItem::updatePaintNode(QSGNode * oldNode, UpdatePaintNodeData * updatePaintNodeData) {
if (doNotUpdate) return oldNode;
// draw UI logic
return node;
}