カスタムタイプの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のメタタイプの1つとして登録されていないということは、もっと問題に思えます。 – Hayt
CMakeとは無関係です。タグを編集してください。 – usr1234567
@Haytはい、私はこのサイトを読んで、その指示に従っています。 – user2925177