Qd宏在Qt中做了什么

Tha*_*nga 49 macros qt

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

几乎所有时候它都应该返回作为d变量参数给出的类型的小部件.需要进一步澄清这一点.

Tim*_*yer 48

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

这篇文章几乎涵盖了你的大多数问题:

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


小智 16

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