我有一个简单的需求:我已经定义了一个C ++类
class MyClass: public QDeclarativeItem
{
Q_OBJECT
public:
MyClass(QDeclarativeItem * parent=0);
...
private:
QList<QString> mList
}
当然,我已经注册了它:qmlRegisterType<MyClass>(...)
我想在QML代码中访问我的QList<QString> mList
。我该怎么办?
它让我很烦,因为它看起来像一个简单的问题,但我找不到任何关于此事的内容。 (我可以创建一个Q_INVOKABLE插槽,但我无法读取结果等...)
答案 0 :(得分:4)
我不认为QList
是Qt的QML绑定支持的数据类型。我使用QtWebkit Bridge在C ++和JavaScript之间进行了类似的问题。
如果可能,请尝试使用QVariantList
代替QList
。虽然这在技术上是QList<QVariant>
的typedef,但我认为它应该有用。
答案 1 :(得分:2)
如果您需要列表中的自定义类型(不仅仅是字符串或其他基本类型),那么就有QDeclarativeListProperty。
但它更复杂,请参阅http://doc.qt.nokia.com/4.7/declarative-tutorials-extending-chapter5-listproperties.html