我在創建具有自定義類型的QVariant
時遇到問題。這裏是一個小例子,顯示我想達到的目標:Qt - 沒有匹配函數調用'QVariant :: QVariant(MyClass&)'
main.cpp中:
#include "MyClass.h"
int main() {
MyClass some_object;
QVariant variant(some_object);
return 0;
}
包括/ MyClass.h:
#pragma once
#include <QtCore>
class MyClass {
public:
MyClass() : _my_member(0.0) {}
MyClass(const MyClass &other) { _my_member = other._my_member; }
~MyClass() {}
MyClass& operator=(MyClass& other)
{
swap(*this, other);
return *this;
}
MyClass(MyClass&& other) : MyClass()
{
swap(*this, other);
}
friend void swap(MyClass& first, MyClass& second)
{
using std::swap;
swap(first._my_member, second._my_member);
}
private:
float _my_member;
};
Q_DECLARE_METATYPE(MyClass);
構建失敗,出現以下錯誤:
error: no matching function for call to ‘QVariant::QVariant(MyClass&)’
QVariant variant(some_object);
^
我該如何解決這個錯誤?
你看過這個嗎? http://doc.qt.io/qt-5/custom-types.html似乎更多的問題是,你的類型沒有真正註冊爲qt的元類型之一 – Hayt
與CMake無關。請修改標籤。 – usr1234567
@Hayt是的,我已閱讀本網站並按照說明操作。 – user2925177