有一个类继承自 QStandardItemModel
class XXXMessageModel : public QStandardItemModel
,然后用来提供model 数据给qml 里面的listView ,结果发现总是会被自动析构,然后warning : RTTI symbol not found for class 'QObject'
查了半天发现是 XXXMessageModel 初始化的时候 ,没有传 parent参数,传个this给它就会让this 拥有所有权,不会被自动释放,否则估计是qml 管理 了 这个model 的所有权。导致会被随机释放。
修改前是这样的:
m_pXXXModel = new XXXMessageModel ;
修改后是这样的:
m_pXXXModel = new XXXMessageModel (this);
然后 qml 里面的ListView 获得 这个 m_pXXXModel即可。