Это мой контейнерный класс. Который я объявляю в Q_DECLARE_METATYPE.
class Container
{
private:
std::string stdstrContainerName;
std::string stdstrPluginType;
Geometry Geom;
public:
Container();
Container(std::string, std::string, const Geometry& geometry );
Container(const Container& obj);
};
Q_DECLARE_METATYPE(Container)
Этот класс является членом данных в TreeItem. Так как это тяжелый объект, поэтому я хочу передать его как указатель, а не как значение.
class TreeItem
{
Container* data();
private:
QList<TreeItem*> childItems;
Container itemData;
TreeItem* parentItem;
};
Container* TreeItem::data()
{
return &itemData;
}
Я получаю ошибку компилятора, что тип не зарегистрирован, пожалуйста, используйте макрос Q_DECLARE_METATYPE, чтобы сделать его известным мета-объектной системе Qt