• 8166阅读
  • 10回复

[提问]请问Q_ARG函数如何传递引用参数 [复制链接]

上一主题 下一主题
离线cjalchange
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-20
类中有一个方法定义如下:

Q_INVOKEABLE void Test(myData &md);// myData是我的自定义类型

现在我需要用invokeMethod去唤起这个函数

myData m_mydata;
QMetaObject::invokeMethod(pWid, "Test", Qt::DirectConnection, Q_ARG(myData, m_mydata));

但是我这么写程序根本不会去调用Test函数

请问有谁知道该怎么去写?谢谢
离线roywillow

只看该作者 1楼 发表于: 2012-05-20
我感觉像这种自定义类型,需要向元对象系统注册自己才能实现这些功能吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线cjalchange
只看该作者 2楼 发表于: 2012-05-20
回 1楼(roywillow) 的帖子
我刚才把函数改成Test(int &a)试了下,也还是不能调用!
离线roywillow

只看该作者 3楼 发表于: 2012-05-20
那把这个函数声明为槽了吗?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线roywillow

只看该作者 4楼 发表于: 2012-05-20
呃……好像并不需要声明为槽……?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线cjalchange
只看该作者 5楼 发表于: 2012-05-20
回 4楼(roywillow) 的帖子
嗯,有Q_INVOKEABLE就行的!
离线roywillow

只看该作者 6楼 发表于: 2012-05-20
回 5楼(cjalchange) 的帖子

印象中我只用过一次invokeMethod,并且好像还是个没有参数的槽,并且……还记不清是在哪用的了……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线cjalchange
只看该作者 7楼 发表于: 2012-05-20
回 6楼(roywillow) 的帖子
哎!等待高手来解决~~
离线novesky

只看该作者 8楼 发表于: 2012-05-20
先用qRegisterMetaType注册myData
离线cjalchange
只看该作者 9楼 发表于: 2012-05-21
回 8楼(novesky) 的帖子
好像不是类型的问题,我已经改成int型了都不行
离线roywillow

只看该作者 10楼 发表于: 2012-05-21
回 9楼(cjalchange) 的帖子
还木有解决?
帮忙顶一下
我也对这个问题比较好奇……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个