我想知道在Qt对象中实现pimpl惯用法的最简单方法。我想要的是这样的东西:
pimpl.h:
class B;
class A: public QObject {
B *b;
}pimpl.cxx:
class B: public QObject {
}现在,很明显,Qt将不会传递B类来为它创建moc。如何处理这件事?我希望在.cxx中显式地实现B。
发布于 2016-07-26 21:19:54
您可以创建一个pimpl-private.h,它包含B的定义,并且只包含在pimpl.cxx中,而不包含在其他地方。然后你就可以对这个头文件运行moc了。
发布于 2016-07-28 05:27:18
通过添加以下内容,可以在.cpp文件中包含代码
#inlude "pimpl.moc"在末尾(!)"pimpl.cxx“并重新运行qmake。这将生成一个Makefiule规则来通过moc运行文件,并将输出放入一个"pmipl.moc“中,这样一切都会神奇地工作。
https://stackoverflow.com/questions/38590692
复制相似问题