0
EnumClasses.h

    #ifndef ENUMCLASSES_H
    #define ENUMCLASSES_H
    
    #include <QObject>
    
    namespace mynamespace {
    
    enum class Fruit : int
    {
        Apple,
        Banana,
        Orange
    };
    Q_ENUM(Fruit)
    
    }
    
    #endif // ENUMCLASSES_H

appears Warning message

EnumClasses.h:14:1: error: 'friend' used outside of class
qobjectdefs.h:116:30: note: expanded from macro 'Q_ENUM'
qobjectdefs.h:114:5: note: expanded from macro 'Q_ENUM_IMPL'

If I use Q_ENUMS (deprecated) Warning appears

/home/Qt/EnumClasses.h:14:1: Use Q_ENUM instead of
Q_ENUMS

What I need do for register enum class in QML?

1 Answers1

2

like this:

namespace mynamespace {
Q_NAMESPACE

enum class Fruit : int
{
    Apple,
    Banana,
    Orange
};
Q_ENUM_NS(Fruit)
}

See: https://doc.qt.io/qt-5/qqmlengine.html#qmlRegisterUncreatableMetaObject

Waqar
  • 8,558
  • 4
  • 35
  • 43