, мне может не хватать чего-то очевидного, но при попытке предоставить 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, поэтому это может быть причиной ..