• 4031阅读
  • 3回复

[提问]c++与qm混编中的变量传递问题 [复制链接]

上一主题 下一主题
离线iamcwz
 

只看楼主 倒序阅读 楼主  发表于: 2015-05-19
在main.cpp中定义了一个变量例如:a[number];
Q_INVOKABLE  QString a[number];
engine.rootContext()->setContextProperty("a",*a);//数组
通过这样的方式将数组指针注册到qml中。
问题是在qml中如何操作这个指针来表示数组下标呢?例如我要表示a[2],
在qml中写 a+2行不通。
离线彩阳

只看该作者 1楼 发表于: 2015-05-19
使用QQmlListProperty对QList进行包裹(wrap)。详情请看birthday那个例子。
上海Qt开发联盟,热忱地欢迎你的加入!
离线iamcwz

只看该作者 2楼 发表于: 2015-05-20
回 彩阳 的帖子
彩阳:
使用QQmlListProperty对QList进行包裹(wrap)。详情请看birthday那个例子。

birthday貌似不是我想要的效果,那个在qml指定数组内容,在main中输出。
我想要的效果很简单,在main.cpp中已经有一个数组,我要在qml中把数组输出来。我参考的是这个链接http://blog.csdn.net/kangear/article/details/8042187
貌似传数组+n行不通。
离线iamcwz

只看该作者 3楼 发表于: 2015-05-20
回 彩阳 的帖子
彩阳:使用QQmlListProperty对QList进行包裹(wrap)。详情请看birthday那个例子。 (2015-05-19 21:32) 

群主,已经解决了。用的QStringList,但是没有用QQmlListProperty包裹。直接:
Q_INVOKABLE    QStringList sadvUrl;
engine.rootContext()->setContextProperty("sadvUrl",sadvUrl);//数组
在qml中使用sadvUrl 指定下标即可使用了。谢谢啦
快速回复
限100 字节
 
上一个 下一个