EasyChat开发笔记(二)

c++端将好友消息发送给QML端的问题:

创建了一个新类Conversation,发信人和消息列表(QStringList)为属性。

用QList存储不同好友发送过来的消息,再用QQmllistproperty注册过去,但是qml端读取该属性时始终为空,读不到任何东西。(视频播放器里获取电影信息就可以,这个就不行,之前获取好友列表也想用这个方法,同样失败。最后改用QStringList。搞不懂。。。)

改用将Conversation转换成QVariant,再用QVector注册;跳过QQmllistproperty参见以下两个博客:
https://www.cnblogs.com/liushui-sky/p/6560286.html
http://qtdebug.com/qtbook-misc-qvariant/

转换成功以后Conversation的默认构造和析构函数就有问题,只能声明成指针,且无法赋值。
故这个方法也行不通。

最后选择用函数调用的方法。
在这里插入图片描述
在这里插入图片描述先将获取到的好友消息存到vector,并发送收到好友消息的信息给qml,qml调用函数将vector好友的名字读出来存入conversationlist,qml端就能读到有多少好友发送消息。选中好友后,qml调用函数获取该好友发送的信息,该函数需要好友的名字作为参数。这样好友发送的信息就都能获取到啦~

你可能感兴趣的:(学习笔记)