c++ - 在 Qt : is it a proper way? 中 boost 序列化

标签 c++ qt serialization boost

我正在考虑在基于 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/

相关文章:

c++ - 创建一个基于所选选项卡选择主菜单栏的功能

c++ - 让 GNU 使用不同的编译器

c++ - 在 Qt 中连接多个信号和槽

c++ - QT 程序包含带有 if-test-then block 的 bash 脚本以及内部问题错误中转义的必要引号

java - 如何从java中的输出流中按 block 获取数据?

c++ - 由于 Unresolved external 问题,OpenCV 无法编译 -- LNK2019

c++ - 为什么装饰模式适用于指针而不适用于引用?

qt - 从 QWidget 切换到 QGraphicsItem 时的布局问题

ruby-on-rails - Rails 5,sqlite3 使用数组作为列/属性问题

java - 反序列化期间出现奇怪的异常