Ich könnte etwas offensichtlich hier fehlt, aber wenn eine Q_ENUM auf QML, auch im einfachsten Fall zu entlarven versucht, scheint nicht, wie in den QT-docs (http://doc.qt.nokia.com/4.7-snapshot/qtbinding.html#using-enumerations-of-a-custom-type)Q_ENUMS auf QML Qt Machen
gezeigt zu arbeitenich einen einfachen Testfall erstellt haben, sieht meine C++ Klasse wie:
class MyClass : public QDeclarativeItem {
Q_OBJECT
Q_ENUMS(testType)
public:
MyClass() : t(FirstValue) { }
enum testType { InvalidValue, FirstValue, SecondValue } ;
testType testVal() const { return t; }
Q_PROPERTY(testType testVal READ testVal NOTIFY testValChanged)
private:
testType t;
signals:
void testValChanged();
};
ich dann & eine Instanz dieser Klasse in die QDeclartiveContext registrieren injizieren.
Wenn ich versuche, auf die testVal -Eigenschaft zuzugreifen, wird anstelle einer Zeichenfolgendarstellung die Ganzzahl (in diesem Fall 1) zurückgegeben. Darüber hinaus mit der Instanz als ‚aVar‘ injiziert, wenn ich versuche, und den Zugang ‚aVar.FirstValue‘ wird das Ergebnis ‚undefined‘
dies bedeutet, dass ich tun kann, Tests Also nicht wie: 'if aVar.testVal == FirstValue'
(Reference für die unqualifizierte Firstvalue)
Oder wie folgt aus: 'if aVar.testVal == aVar.FirstValue'
(aVar.FirstValue
ist nicht definiert)
Wer einmal durchgemacht? Es scheint zu Konflikt mit Beispiel in den QT-Dokumenten, obwohl das Objekt von QML in diesem Beispiel instanziiert wird, so könnte dies die Ursache sein ..
ah, gotcha, danke. – aidanok