使私有 C++ 函数对 Qml 可见

Ami*_*mar 1 qt public private-members qml

我一直按照Qt 文档中给出的方法使我的 C++ 函数可以从 Qml 调用。

这需要满足以下条件之一:

  1. 制作 C++ 函数publicand Q_INVOKABLE or
  2. 使 C++ 函数成为public slot

这有时与我的课堂设计不同步。例如,根据我的类设计,我想要从 Qml 调用的函数是私有的。

Q1. 我可以使函数对 Qml 可见并仍保持其私有吗?

Q2。期待这种行为是我的设计缺陷吗?

evi*_*uff 5

好吧,如果您设计了一些私有的东西,您会认为它只能在类中使用。现在您实际上要问的是我如何解决我的设计。明显的答案是 - 您可以在类中创建一个公共包装器,它将调用您的私有方法并将此公共包装器发布到 QML 中,但如果您遇到这种情况,我建议您检查设计。