我正在探索Qt源代码并遇到了这个Q_D
宏。有人可以解释它的作用吗?
几乎所有时候它都应该返回一个给定类型的窗口小部件作为d
变量的参数。需要进一步澄清。
答案 0 :(得分:46)
简而言之,Qt使用私有实现来管理数据。对于执行此操作的类,通常有一个X类和一个XPrivate类。 Q_D宏定义了“d”指针,所以如果你写d->无论如何,你都可以访问那个私有数据部分。
这篇文章几乎涵盖了你的大部分问题:
答案 1 :(得分:14)
Q_D是Qt实现d指针或pimpl模式(私有实现)的一部分。关于所有这些的更多信息可以在Qt DevNet wiki上找到:https://wiki.qt.io/D-Pointer