gpt4 book ai didi

Qt如何在不知道内部类型的情况下从QVariant中提取自定义数据指针

转载 作者:行者123 更新时间:2023-12-05 05:15:16 27 4
gpt4 key购买 nike

我有一个 QVariantMap与数据。 QVariant里面我可以存储在元系统中声明和注册的自定义类

我知道确实存在 QVariant::value<XXX>()但因为我不知道先验是什么XXX我不能那样做。

所以我尝试转换为 QObject*都带有 QVariant::value<QObject*>qvariant_cast但它似乎持有一个空指针:

我的尝试:

MyClass* obj = new MyClass();
QVariant variant = QVariant::fromValue<MyClass*>(obj); // it works;

qDebug() << variant; // Qvariant(MyClass*,)

QObject* obj2 = variant.value<QObject*>();

qDebug() << obj2; // QObject(0x0)

最佳答案

OP 提到它适用于:

QVariant variant(QVariant::fromValue(static_cast<void*>(obj)));
auto test = static_cast<QObject*>(variant.value<void*>());

qDebug() << obj2; // MyClass(0x8a99838

this answer 中所述

关于Qt如何在不知道内部类型的情况下从QVariant中提取自定义数据指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51750946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com