Предоставление Q_ENUMS Qt QML

, мне может не хватать чего-то очевидного, но при попытке предоставить Q_ENUM в QML, даже в самый простой случай, похоже, не работает, как показано в документации QT ( http://doc.qt.nokia.com/4.7-snapshot/qtbinding.html#using-enumerations-of-a-custom- type )

Я создал простой тестовый пример, мой класс C ++ выглядит так:

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();
};

Затем я регистрирую и Кроме того, с экземпляром, введенным как 'aVar', если я попытаюсь получить доступ к 'aVar.FirstValue', результатом будет 'undefined'

. Это означает, что я не могу выполнять такие тесты, как: 'if aVar. testVal == FirstValue ' (ReferenceError для неквалифицированного FirstValue)

Или вот так: ' if aVar.testVal == aVar.FirstValue ' ( aVar.FirstValue равно undefined)

Кто-нибудь проходил через это раньше? Кажется, это противоречит примеру, приведенному в документации QT, хотя в этом примере объект создается из QML, поэтому это может быть причиной ..

6
задан foraidt 29 September 2011 в 09:01
поделиться