C++ 如何仅将枚举类传递给qml?
我有一个只有enum类的.h文件 somefile.hC++ 如何仅将枚举类传递给qml?,c++,qt,enums,qml,C++,Qt,Enums,Qml,我有一个只有enum类的.h文件 somefile.h enum class Someclass { a = 0, b = 3, // ... z = 100 }; class Anotherclass : public QObject { Q_OBJECT Q_ENUM (Someclass) ... }; 正如您所看到的,周围没有Q_对象或Q_小工具。但是我想在qml中访问这个类,就像 ... property var someProperty: Someclas
enum class Someclass {
a = 0,
b = 3,
// ...
z = 100
};
class Anotherclass : public QObject
{
Q_OBJECT
Q_ENUM (Someclass)
...
};
正如您所看到的,周围没有Q_对象或Q_小工具。但是我想在qml中访问这个类,就像
...
property var someProperty: Someclass.a
...
当然,我试着使用另一个类
enum class Someclass {
a = 0,
b = 3,
// ...
z = 100
};
class Anotherclass : public QObject
{
Q_OBJECT
Q_ENUM (Someclass)
...
};
甚至
class Anotherclass : public QObject
{
Q_OBJECT
public:
typedef Someclass Myclass;
Q_ENUM (Myclass)
...
};
有某处。cpp
...
qmlRegisterUncreatableType<Anotherclass> ("somepackage", 1, 0, "somepackage is used only for getting enum");
...
。。。
qmlRegisterUncreatableType(“somepackage”,1,0,“somepackage仅用于获取枚举”);
...
这不管用。我没有访问somefile.h的权限,但我确实希望在qml中使用此枚举。有什么方法可以做到这一点吗?只需使用Q_对象派生类并在该类命名空间中声明枚举即可
class SomeClass: public QObject
{
Q_OBJECT
enum SomeEnum {
a = 0,
b = 3,
z = 100
};
Q_ENUM(SomeEnum)
};
更多信息可能与否重复,但不是。我有不同的情况,因为enum类不在QObject类中。我不能这样做,因为无法访问.h文件。即使是NewSomeClass中的枚举的副本也帮不上我的忙。