我有一个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 of MyQQuickItem被触发。如果我在cpp端有指向MyQQuickItem的指针,
QQuickItem * my_quick_item_ptr = m_qml_engine->rootObjects()[0]->findChild<QQuickItem*>("myquickitem");当我不想让MyQQuickItem**'s updatePaintNode被调用时,如何阻止它被调用?**
第二个问题:如果是,如何再恢复它?
发布于 2017-09-07 12:16:42
如果和何时调用updatePaintNode()是最有可能的,扫描内部的东西,这不是真正的打算被修改。
也许试着做些不那么有侵略性的事情,比如:
QSGNode * MyQQuickItem::updatePaintNode(QSGNode * oldNode, UpdatePaintNodeData * updatePaintNodeData) {
if (doNotUpdate) return oldNode;
// draw UI logic
return node;
}https://stackoverflow.com/questions/46095768
复制相似问题