• 12862阅读
  • 8回复

[提问]请教一下QT怎样将一个结构体作为函数参数从C++传递到QML [复制链接]

上一主题 下一主题
离线sn_112
 

只看楼主 倒序阅读 楼主  发表于: 2015-02-26
第一次做QtQuick的项目,遇到了许多结构体作为参数传递到QML里的问题,机构体比较多,每一个写成类用Q_PROPERTY的话,工作量比较大,有没有方法可以把结构体传递到QML里去。
我在尝试把结构体存储在QVariant对象里面,传参到QML,但是在QML中不知道如何去解析。
离线彩阳

只看该作者 1楼 发表于: 2015-02-26
在每个Setter和Getter函数前面添加Q_INVOKABLE。
4条评分好评度+1贡献值+1金钱+5威望+1
sn_112 好评度 +1 - 2015-03-23
sn_112 贡献值 +1 - 2015-03-23
sn_112 威望 +1 - 2015-03-23
sn_112 金钱 +5 - 2015-03-23
上海Qt开发联盟,热忱地欢迎你的加入!
离线sn_112

只看该作者 2楼 发表于: 2015-02-27
回 彩阳 的帖子
彩阳:在每个Setter和Getter函数前面添加Q_INVOKABLE。 (2015-02-26 20:08) 

谢谢彩阳同学,是在结构体的setter和getter函数之前么,普通的结构体能不能传递的?
离线彩阳

只看该作者 3楼 发表于: 2015-02-28
任何结构体或者是类都要经过包装后才能在QML环境中使用。所以呢,即使不使用Q_PROPERTY来指定属性,也要使用QObject作为你结构体的基类。以便使用Q_INVOKABLE。
上海Qt开发联盟,热忱地欢迎你的加入!
离线sn_112

只看该作者 4楼 发表于: 2015-03-13
谢谢了,看来得大面积改代码了
离线XChinux

只看该作者 5楼 发表于: 2015-03-18
是否可以将结构体通过某种序列化方法,转成json,传过去?
4条评分好评度+1贡献值+1金钱+5威望+1
sn_112 好评度 +1 - 2015-03-23
sn_112 贡献值 +1 - 2015-03-23
sn_112 威望 +1 - 2015-03-23
sn_112 金钱 +5 - 2015-03-23
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线zhoukuanbin

只看该作者 6楼 发表于: 2015-09-25
我是把整个数据放在QList里面,然后js 的 var变量可以当链表处理,你要做的是就是按位置查询,举个例子。
struct date
{
    int a,
   int b,
  int c
};
然后list就是0,1,2 就是你按照3的倍数来取值,3n+x来取值
离线aslistener

只看该作者 7楼 发表于: 2015-10-16
1. 遇到这个问题说明你的业务逻辑跟gui还是没有分开。 
2. 是要在qml中使用model/view 吗,那样的话可以在qml 代码中定义一个model,传入qml
离线momognu

只看该作者 8楼 发表于: 2015-12-25
目前我都是传json
okgoood正在赶来的路上
快速回复
限100 字节
 
上一个 下一个