首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Q_DECLARE_METATYPE作为指针传递

将Q_DECLARE_METATYPE作为指针传递
EN

Stack Overflow用户
提问于 2019-05-25 03:39:55
回答 1查看 816关注 0票数 1

这是我在Q_DECLARE_METATYPE中声明的容器Q_DECLARE_METATYPE。

代码语言:javascript
复制
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中的数据成员,这是一个很重的对象,所以我想把它作为指针而不是值传递。

代码语言:javascript
复制
class TreeItem
 {

    Container* data();

  private:
      QList<TreeItem*> childItems;
      Container itemData;
      TreeItem* parentItem;
  };

 Container* TreeItem::data()
 {
     return &itemData;
 }

未注册类型的编译器错误,请使用Q_DECLARE_METATYPE宏将其告知Qt的元对象系统

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-25 04:22:26

如果它是要传递的指针,则需要告诉MOC:

Q_DECLARE_METATYPE(Container*)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56301498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档