Null und Undefined in QML und C++
Beim erweitern QML benutzerdefinierte Typen in C++ geschrieben, begann ich mich zu Wundern über die Unterschiede zwischen JS und C++.
Dieser Zeit habe ich mich gefragt, ob null
-Kontrollen auf der C++-Seite sind sufficiant, oder wenn es so etwas wie eine "QUndefined
", die ich brauchen könnte, um zu prüfen, wie gut. Soweit ich sehen kann, ist dies nicht beschrieben hier.
Oder um es anders auszudrücken:
- Was passiert auf der C++ Seite, wenn ich eine Immobilie zu
undefined
auf die QML Seite - Was passiert auf der C++ Seite, wenn ich eine Immobilie zu
null
auf die QML Seite - Was passiert auf der QML Seite, wenn ich eine Immobilie zu
null
auf der C++ Seite
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist sicherlich auf dem richtigen Weg mit deiner Antwort, aber ist hier einige weitere Informationen.
Was passiert, wenn Sie schreiben, um eine Eigenschaft hängt davon ab, was die Eigenschaft ist, zum Beispiel, ist es ein QObject-Eigenschaft? etc. Je nach Art der Immobilie, Sie erhalten auch einen Fehler bei der Zuordnung (wenn Sie beispielsweise schreiben
null
zu einem numerischen Typ-Eigenschaft, wie doppelt).Lassen Sie uns annehmen, zum Wohle der Antwort, dass Sie eine Eigenschaft festlegen auf eine
QObject
. Sie können legen Sie es aufundefined
wenn die Eigenschaft hat eineRESET
definierte Funktion, für die Q_PROPERTY. Zitieren Sie in der Dokumentation:Um genauer zu sein, wenn Sie eine Q_PROPERTY, dass eine
RESET
- Funktion, wenn Sie schreibenundefined
zu, die Eigenschaft, dieRESET
- Funktion wird aufgerufen werden.Zur Einstellung von Eigenschaften zu
null
, die Antwort befindet sich rechts oben, der Letzte Verweis, im Grunde, wenn die Eigenschaft enthält einenQObject*
-abgeleiteten Typ, es speichert einenullptr
.Den letzten Fall, dass Sie Fragen, ist die Zuordnung
null
um eine Eigenschaft der C++ - Seite. Für die Absichten und Zwecke, ich nehme an, du fragst nach einem Fall wie diesem:In diesem Fall, die QML-Seite dieser Eigenschaft (
myInstanceId.myThing
) würde am Ende alsnull
, aus dem Gedächtnis.