QVariant强制转换为基本类型

罗斯兰(Ruslan F.)

我有这样的课:

class QObjectDerived : public QObject
{
    Q_OBJECT
    // ...
};
Q_DECLARE_METATYPE(QObjectDerived*)

当此类存储到QVariant时,会发生这种情况

  QObjectDerived *object = new QObjectDerived(this);
  QVariant variant = QVariant::fromValue(object);
  qDebug() << variant;                          // prints QVariant(QObjectDerived*, )
  qDebug() << variant.value<QObject*>();        // prints QObject(0x0)
  qDebug() << variant.value<QObjectDerived*>(); // QObjectDerived(0x8c491c8)

  variant = QVariant::fromValue(static_cast<QObject*>(object));
  qDebug() << variant;                          // prints QVariant(QObject*, QObjectDerived(0x8c491c8) )
  qDebug() << variant.value<QObject*>();        // prints QObjectDerived(0x8c491c8)
  qDebug() << variant.value<QObjectDerived*>(); // QObject(0x0)

有什么方法可以将其存储在QVariant中并能够将其获取为QObject *和QObjectDerived *吗?

托比·斯派特

只写

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

可能是可以部分专门qvariant_cast为你的类型,但是这不是一个支持文件的使用情况,而且我不愿意依靠它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

强制转换为基本类型的怪异Java行为

将基本类型的列表强制转换为IEnumerable <object>

C#-如何强制转换为基本类型?

JNI:强制转换后将基本类型转换为Jobject或Object类型的SetObjectArrayElement

将类型转换为基本类型

无法将类型A强制转换为类型B。LINQto Entities仅支持强制转换EDM基本类型或枚举类型

无法将类型“ x”强制转换为“ y”。LINQ to Entities仅支持强制转换EDM基本类型或枚举类型

转换为通用基本类型

无法将类型“ Shared.ClientService”强制转换为类型“ Shared.IClientID”。LINQ to Entities仅支持强制转换EDM基本类型或枚举类型

在Golang中将基本类型转换为派生类型

TypeConverter无法从某些基本类型转换为相同的基本类型

无法将System.Double强制转换为System.Object。LINQ to Entities仅支持强制转换EDM基本类型或枚举类型

从基本类型转换为非 POD 结构

从指针的向量到基本类型,返回派生类型的第一个元素,强制转换为派生类型

Cast()例外:LINQ to Entities仅支持强制转换EDM基本类型或枚举类型

将基本类型转换/转换为派生的泛型类型

如何在Java中通过反射强制转换通用基本类型?

如何将ProjectTo从基本类型转换为仅在运行时已知的类型?

如何从String转换为基本类型或标准Java包装器类型

有没有一种方法可以转换存储在QVariant中的基本类型而无需专门转换?

警告:“〜或<<操作的结果表达式尚未转换为其基本类型”-如何解决?

重载运算符-无法在分配中将对象转换为基本类型

如何使用泛型方法将List <T>转换为数组t [](对于基本类型)?

如何减少在 Go 中将基本类型转换为字符串的函数中的代码重复

ABAP中的Helper类可转换为Odata基本类型

Phoenix / Ecto-将ISO字符串转换为utc_datetime基本类型

如何在 Scala 中将映射、序列和基本类型的任何嵌套组合转换为 JSON?

将jaxb xml消息转换为Apache骆驼(Java)中的基本类型

检查QVariant是否可以转换为其他QVariant类型