繁体   English   中英

如何在Qt和QObject的子类中使用pimpl习惯用法

[英]How to use the pimpl idiom with Qt and subclasses of QObject

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

pimpl.h:

class B;

class A: public QObject {
    B *b;
}

pimpl.cxx:

class B: public QObject {
}

现在,很明显,Qt不会通过B类为其创建Moc。 如何处理? 我想在.cxx中明确实现B的实现。

您可以创建一个pimpl-private.h,其中包含B的定义,并且仅包含在pimpl.cxx中,除此之外没有其他地方。 然后,您可以在此标头上运行moc。

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

#inlude "pimpl.moc"

在“ pimpl.cxx”的末尾(!),然后重新运行qmake。 这将生成一个Makefiule规则,以通过moc运行文件,并将输出结果放入“ pmipl.moc”中,从而使一切神奇地起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM