如何使 Qt 中的类既可编写脚本又可序列化?

Posted

技术标签:

【中文标题】如何使 Qt 中的类既可编写脚本又可序列化?【英文标题】:How to make a class in Qt both scriptable and serializable? 【发布时间】:2012-10-04 23:41:39 【问题描述】:

我正在尝试编写一个具有两个基本特征的类:

它必须是可编写脚本的 - 该类包含许多用 Q_INVOKABLE 修饰的属性和方法,这些属性和方法会暴露给脚本。 它需要是可序列化的,以便它可以注册到qRegisterMetaTypeStreamOperators()以存储在QVariants中。

据我所知,我需要从QObject 派生以使该类可编写脚本。但是,为了向qRegisterMetaTypeStreamOperators() 注册类,该类似乎需要有一个默认的复制构造函数——这是QObject 派生类所不能具备的。

有没有办法实现这两个目标?

【问题讨论】:

【参考方案1】:

您可以拥有不是从 QObject 派生的可编写脚本的对象,但它的工作量更大。已讨论here

【讨论】:

以上是关于如何使 Qt 中的类既可编写脚本又可序列化?的主要内容,如果未能解决你的问题,请参考以下文章

如何从基于 QObject 的类方法返回 QList<double> 以在 Qt 脚本中使用

如何在不同操作系统上处理 Qt 中的不同事件序列?

使 C++ 应用程序可编写脚本

如何从统一自定义编辑器中的可编写脚本对象数组中获取值?

Qt持久性对象进行序列化

c#中如何让自己的类也能序列化?