DOC
元对象系统
属性系统
信号槽
自定义类型注册到元对象系统
https://doc.qt.io/qt-6/qmetatype.html
#include <QMetaType>
#include <QDebug>
// 定义一个自定义类型
class MyType {
public:
MyType(int value = 0) : m_value(value) {}
int value() const { return m_value; }
void setValue(int value) { m_value = value; }
private:
int m_value;
};
// 在类外使用 Q_DECLARE_METATYPE 宏将自定义类型注册到元对象系统中
Q_DECLARE_METATYPE(MyType)
int main(int argc, char *argv[]) {
Q_UNUSED(argc)
Q_UNUSED(argv)
// 注册自定义类型到元对象系统中
qRegisterMetaType<MyType>("MyType");
// 创建一个 QVariant 并存储自定义类型的实例
QVariant var;
MyType myObject(42);
var.setValue(myObject);
// 从 QVariant 中获取自定义类型的实例并输出
MyType retrievedObject = var.value<MyType>();
qDebug() << "Retrieved value:" << retrievedObject.value();
return 0;
}