标题:导入到qml中的枚举是否不可以有命名空间
作者:zerogex
日期:2015-09-19 20:01
内容:
如下所示定义的枚举 SPC::Klass::Type, 在QML中调用createObject()时,报错不知道参数 SPC::Klass::Type是什么,请问枚举要想导入QML是不是不能带名字空间?
namespace SPC {
class Klass : public QObject
{
Q_OBJECT
Q_EMUS(Type)
public:
enum Type
{
type1
}
Q_INVOKABLE Q_QObject * createObject(SPC::Klass::Type type) {...}
}
}
#1 [zerogex 09-20 11:44]
没有人这样用过吗?
#2 [toby520 09-22 09:58]
普通的类的枚举 是可以在QML中使用的,带有命名空间的没有试过,或者也是可以的
类似
#include
class DeviceModel: public QObject {
Q_OBJECT
Q_ENUMS(DeviceModelEnum)
public:
enum DeviceModelEnum {
Z10 = 1, Q10 = 2, Q5 = 3
};
};
加载qml的地方
#include
qmlRegisterType("ekkes_enums", 1, 0, "DeviceModel");
qml中:
import ekkes_enums 1.0
Page {
Container {
DropDown {
Option {
text: "Z10"
value: DeviceModel.Z10
}
Option {
text: "Q10"
value: DeviceModel.Q10
}
Option {
text: "Q5"
value: DeviceModel.Q5
}
onSelectedIndexChanged: {
&nb ..
#3 [zerogex 09-24 10:31]
不加命名空间的确可以,加了qml就认不出来了,用整形数可以处理,不知道qt官方是否会改进