找回密码
 立即注册
收起左侧

QT信号 槽函数不能用结构体作参数吗?

3
回复
7749
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2015-8-7 22:54:15 显示全部楼层 |阅读模式
1Qter豆

必须将结构体封装到QVariant使用吗??
如:http://blog.csdn.net/skykingf/article/details/8561267
必须这样用吗?

最佳答案

查看完整内容

如果传自定义结构体的,网上都是那么说的,但是我没有用过,我都是传void*型指针,收到再强转了,如果传值的话,丢到QByteArray里面再传送,貌似没有什么问题,至少现在没有发现
回复

使用道具 举报

累计签到:16 天
连续签到:1 天
2015-8-7 22:54:16 显示全部楼层
如果传自定义结构体的,网上都是那么说的,但是我没有用过,我都是传void*型指针,收到再强转了,如果传值的话,丢到QByteArray里面再传送,貌似没有什么问题,至少现在没有发现
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2015-8-8 01:09:52 显示全部楼层
信号和槽函数是可用结构体指针传参数的。我是用的结构体别名,编译提示别名没有定义,还以为不能用结构体当参数,然后上百度一搜,发现都只有封装到QVariant这种变态复杂的用法。
看楼上兄弟的提示,我换回结构体原名指针传参数发现是可以的。
typedef struct AAA
{
int a;
}aaa;

signals:
    void send_data(aaa *d);    //编译报错

    void send_data(struct AAA *d); //这样就没有问题。

奇怪为什么别名不行?
回复

使用道具 举报

尚未签到

2015-8-8 11:26:29 显示全部楼层
qRegisterMetaType<结构体名字>("名字");       试试看吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了