这是我在Q_DECLARE_METATYPE中声明的容器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.Since中的数据成员,这是一个很重的对象,所以我想把它作为指针而不是值传递。
class TreeItem
{
Container* data();
private:
QList<TreeItem*> childItems;
Container itemData;
TreeItem* parentItem;
};
Container* TreeItem::data()
{
return &itemData;
}未注册类型的编译器错误,请使用Q_DECLARE_METATYPE宏将其告知Qt的元对象系统
发布于 2019-05-25 04:22:26
如果它是要传递的指针,则需要告诉MOC:
Q_DECLARE_METATYPE(Container*)
https://stackoverflow.com/questions/56301498
复制相似问题