我正在考虑在基于 Qt 的应用程序中序列化数据。
基本上我要序列化的是我的层次模型,它由派生自 TreeModelItem 的不同类组成:
class TreeModelItem
{
protected:
QList<TreeModelItem *> m_children;
//...
};
我应该学习 boost::serialization
并继续学习吗?
顺便说一句,有什么可以打的隐藏墙吗?例如。在(反)序列化子元素时,或在恢复自定义单槽连接时?希望专家指教。
最佳答案
QDataStream支持一些流行的 Qt 对象的(反)序列化。您可以检查哪些 here . “Qt”方式就是使用它。
但是,没有什么可以阻止您使用 boost,但是您将不得不重新实现 QList 等基本对象的序列化,这可能会令人厌烦。
请注意,如果您有自定义对象,例如您的 TreeModelItem,您将必须提供一个运算符<<您自己的。
关于信号/槽的序列化:afaik Qt 不支持这个 atm,我相信 Qt 团队是故意这样做的。如果您对原因感兴趣,也许 this阅读可能会有所帮助。
关于c++ - 在 Qt : is it a proper way? 中 boost 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/785814/