Qd宏在Qt中做了什么

时间:2011-07-27 09:10:10

标签: qt macros

我正在探索Qt源代码并遇到了这个Q_D宏。有人可以解释它的作用吗?

几乎所有时候它都应该返回一个给定类型的窗口小部件作为d变量的参数。需要进一步澄清。

2 个答案:

答案 0 :(得分:46)

简而言之,Qt使用私有实现来管理数据。对于执行此操作的类,通常有一个X类和一个XPrivate类。 Q_D宏定义了“d”指针,所以如果你写d->无论如何,你都可以访问那个私有数据部分。

这篇文章几乎涵盖了你的大部分问题:

https://wiki.qt.io/D-Pointer

答案 1 :(得分:14)

Q_D是Qt实现d指针或pimpl模式(私有实现)的一部分。关于所有这些的更多信息可以在Qt DevNet wiki上找到:https://wiki.qt.io/D-Pointer