【发布时间】:2023-03-03 21:51:02
【问题描述】:
我正在探索 Qt 源代码并遇到了这个 Q_D 宏。有人可以解释一下它的作用吗?
几乎所有时候它都应该返回一个作为参数给出的类型的小部件,即d 变量。需要对此进行更多说明。
【问题讨论】:
我正在探索 Qt 源代码并遇到了这个 Q_D 宏。有人可以解释一下它的作用吗?
几乎所有时候它都应该返回一个作为参数给出的类型的小部件,即d 变量。需要对此进行更多说明。
【问题讨论】:
简而言之,Qt 使用私有实现来管理数据。对于这样做的类,通常有一个 X 类和一个 XPrivate 类。 Q_D 宏定义了“d”指针,因此如果您编写 d->whatever,您就可以访问该私有数据部分。
这篇文章应该几乎涵盖了您的大部分问题:
【讨论】:
Q_D 是 Qt 的 d 指针实现或 pimpl 模式(私有实现)的一部分。关于所有这些的更多信息可以在 Qt DevNet wiki 上找到:https://wiki.qt.io/D-Pointer
【讨论】: