相关疑难解决方法(0)

QVariant与自有类型的比较工作?

更新

我创建了一个qt bugticket希望文档将被扩展.

原始问题

相信2010年问题Qt文档,operator==()不适用于自定义类型.

引用:

bool QVariant :: operator ==(const QVariant&v)const

将此QVariant与其进行比较v,true如果它们相等则返回; 否则返回false.

QVariant使用它包含的type()的相等运算符来检查是否相等.如果它的类型与此变体的类型不同,QVariant将尝试convert() v.查看canConvert()可能的转换列表.

警告:此功能不支持注册的自定义类型qRegisterMetaType().

我试图从2010年Stackoverflow问题重现repro案例,并且比较对我没有任何问题.

我也更进一步,尝试使用自己的类进行比较,这也很完美.要重现,请将以下代码放入任何标头中:

enum MyEnum { Foo, Bar };
Q_DECLARE_METATYPE(MyEnum)

class MyClass
{
  int value;
public:
  MyClass() : value(0)
  {
  }

  MyClass(int a) : value(a)
  {
  }

  bool operator==(const MyClass &) const
  {
    Q_ASSERT(false); …
Run Code Online (Sandbox Code Playgroud)

c++ qt qvariant qt5

11
推荐指数
1
解决办法
4194
查看次数

标签 统计

c++ ×1

qt ×1

qt5 ×1

qvariant ×1