J'ai une classe dérivée QQuickItem
Comment désactiver la mise à jour sur un 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
}
Je suis en train de faire quelque chose sur une interface utilisateur distincte qui provoque la updatePaintNode
de MyQQuickItem
à cuire. Si j'ai un pointeur vers MyQQuickItem sur le côté cpp comme si,
QQuickItem * my_quick_item_ptr = m_qml_engine->rootObjects()[0]->findChild<QQuickItem*>("myquickitem");
Comment désactiver updatePaintNode de MyQQuickItem
de se faire appelé quand je ne veux pas que ça?
Question secondaire: Si oui, comment le rétablir à nouveau?
est-il quelque chose dans la classe 'QQuickItem' pour le faire? plutôt que d'utiliser ma propre gestion de drapeau basée sur 'doNotUpdate'? –
Je doute qu'il aura des drapeaux pour faciliter la fonctionnalité inexistante;) C'est juste une propriété supplémentaire, que vous pourriez aussi bien faire puisque vous étendez la classe quand même. Il y a une chance que cela ne fonctionne pas comme prévu, je l'ai juste donné comme idée, allez-y et essayez-le et rapportez le résultat, ainsi je peux supprimer la réponse si ce n'est pas bon. – dtech