【问题标题】:What does Q_D macro do in QtQ_D宏在Qt中有什么作用
【发布时间】:2023-03-03 21:51:02
【问题描述】:

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

几乎所有时候它都应该返回一个作为参数给出的类型的小部件,即d 变量。需要对此进行更多说明。

【问题讨论】:

    标签: qt macros


    【解决方案1】:

    简而言之,Qt 使用私有实现来管理数据。对于这样做的类,通常有一个 X 类和一个 XPrivate 类。 Q_D 宏定义了“d”指针,因此如果您编写 d->whatever,您就可以访问该私有数据部分。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,@HeyYO!现已修复;迟到总比不到好? :)
      • 有用的链接,正是我需要知道的。
      猜你喜欢
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多