我有一个只有枚举类的.h文件。
somefile.h
enum class Someclass {
a = 0,
b = 3,
// ...
z = 100
};
正如您所看到的那样,没有Q_OBJECT或Q_GADGET。但我想在qml中访问这个类,如
...
property var someProperty: Someclass.a
...
当然我试图使用像 anotherclass.h
这样的东西class Anotherclass : public QObject
{
Q_OBJECT
Q_ENUM (Someclass)
...
};
甚至
class Anotherclass : public QObject
{
Q_OBJECT
public:
typedef Someclass Myclass;
Q_ENUM (Myclass)
...
};
somewhere.cpp
...
qmlRegisterUncreatableType<Anotherclass> ("somepackage", 1, 0, "somepackage is used only for getting enum");
...
这并不起作用。我无法访问somefile.h,但我真的想在qml中使用这个枚举。有没有办法做到这一点?
答案 0 :(得分:0)
只使用Q_OBJECT派生类并在该类名称空间中声明你的枚举。
class SomeClass: public QObject
{
Q_OBJECT
enum SomeEnum {
a = 0,
b = 3,
z = 100
};
Q_ENUM(SomeEnum)
};
更多信息here