için QT'ın Q_ENUMS Açığa ancak, QT docs (http://doc.qt.nokia.com/4.7-snapshot/qtbinding.html#using-enumerations-of-a-custom-type)ben bariz burada bir şey eksik olabilir QML
gösterildiği gibi çalışmaya görünmüyor sonra & QDeclartiveContext içine bu sınıfın bir örneğini enjekte kayıtclass 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();
};
: gibi
Ben basit bir test durumda oluşturduk, benim C++ sınıfı görünüyor.
Ben testVal özelliğine erişmeye çalıştığımda, bir dize gösterimi yerine tamsayı (bu durumda 1) döndürür. Ayrıca , ben denemek ve, sonuç
Yani bu ben gibi testler yapamaz demektir 'tanımsız' olan erişim 'aVar.FirstValue' eğer 'Avar' olarak enjekte örneğiyle: için 'if aVar.testVal == FirstValue'
(ReferenceError niteliksiz FirstValue)
Ya da böyle
:'if aVar.testVal == aVar.FirstValue'
(
aVar.FirstValue
tanımlanmamış)
herkes önce de? QT belgelerinde sağlanan örnekle çakışıyor gibi görünmektedir, ancak bu örnekte Nesne QML'den başlatılmıştır, bu nedenle bunun nedeni olabilir ..
ah, teşekkürler, teşekkürler. – aidanok