摘要: 简述 当使用Qt创建用户界面时,特别是那些带有特殊控制和特征的界面时,开发者通常需要创建新数据类型来扩展或替换Qt现有的的值类型集合。 标准类型,比如:QSize、QColor和QString都可以被存储到QVariant对象中,在基于QObject的类中可用作属性的类型,并且可以在信号-槽通信时发射。 下面,我会创建一个自定义类型,并且说明如何将它集成到Qt的对象模型
简述
当使用Qt创建用户界面时,特别是那些带有特殊控制和特征的界面时,开发者通常需要创建新数据类型来扩展或替换Qt现有的的值类型集合。
标准类型,比如:QSize、QColor和QString都可以被存储到QVariant对象中,在基于QObject的类中可用作属性的类型,并且可以在信号-槽通信时发射。
下面,我会创建一个自定义类型,并且说明如何将它集成到Qt的对象模型中,以便能够以与其他Qt标准类型相同的方式被存储。接着会展示如何注册自定义类型,使其可以在信号槽的连接中使用。
创建一个自定义类型
在开始之前,需要确保创建的这个自定义类型符合QMetaType的规定的所有要求。换句话说,它必须提供:
一个公有的默认构造函数
一个公有的拷贝构造函数
一个公有的析构函数
下面的Message类的定义包含了这些成员:
class Message
{
public:
Message();
Message(const Message &other);
~Message();
Message(c