2012-11-06 17 views
15

Ich will nur wissen, haben wir irgendwelche Konzept-Zugriffsspezifizierer wie private Eigenschaft in QML, wie wir in C++ haben.Unterstützt QML Zugriffsspezifizierer wie Private für Eigenschaften?

Wenn nicht, würde ich gerne wissen, falls ich etwa 10 Eigenschaften in meiner QML-Komponente habe, aber ich muss den Zugriff auf nur 2 Eigenschaften beschränken. Wie können wir dieses Szenario erreichen?

Antwort

24

Es gibt keine eingebaute Funktion in QML selbst, aber hier ist Qt Schnell Komponenten Ansatz:

Item { 
    property int sum: internal.a + internal.b 
    QtObject { 
    id: internal 
    property int a: 1 
    property int b: 2 
    } 
} 

Eigenschaften von ‚internen‘ Objekt außerhalb des Postens unsichtbar, kann aber frei in der es verwendet werden.

+0

ist es ein Muss, 'QtObject' zu haben oder ist es auch möglich, zB über diese Methode private Eigenschaft in' ListView' zu deklarieren? – KernelPanic

+1

Sie können jedes beliebige Element anstelle von QtObject verwenden. –

+0

Aus der Dokumentation: "Es kann nützlich sein, ein QtObject zu erstellen, wenn Sie einen extrem leichten Typ benötigen, um eine Reihe von benutzerdefinierten Eigenschaften zu umschließen." Daher ist die Verwendung von QtObject das Beste für die Frage hier. – FourtyTwo

Verwandte Themen