这是我的Container类。我在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;
}
我收到未注册Type的编译器错误,请使用Q_DECLARE_METATYPE宏将其告知Qt的元对象系统
答案 0 :(得分:2)
如果它是您要传递的指针,则需要告知MOC:
Emulate a focused page