首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将pimpl惯用法与QObject的Qt和子类一起使用

如何将pimpl惯用法与QObject的Qt和子类一起使用
EN

Stack Overflow用户
提问于 2016-07-26 21:03:23
回答 2查看 338关注 0票数 0

我想知道在Qt对象中实现pimpl惯用法的最简单方法。我想要的是这样的东西:

pimpl.h:

代码语言:javascript
运行
复制
class B;

class A: public QObject {
    B *b;
}

pimpl.cxx:

代码语言:javascript
运行
复制
class B: public QObject {
}

现在,很明显,Qt将不会传递B类来为它创建moc。如何处理这件事?我希望在.cxx中显式地实现B。

EN

回答 2

Stack Overflow用户

发布于 2016-07-26 21:19:54

您可以创建一个pimpl-private.h,它包含B的定义,并且只包含在pimpl.cxx中,而不包含在其他地方。然后你就可以对这个头文件运行moc了。

票数 4
EN

Stack Overflow用户

发布于 2016-07-28 05:27:18

通过添加以下内容,可以在.cpp文件中包含代码

代码语言:javascript
运行
复制
#inlude "pimpl.moc"

在末尾(!)"pimpl.cxx“并重新运行qmake。这将生成一个Makefiule规则来通过moc运行文件,并将输出放入一个"pmipl.moc“中,这样一切都会神奇地工作。

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

https://stackoverflow.com/questions/38590692

复制
相关文章

相似问题

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