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

问题描述 投票:0回答:1

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

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

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

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

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

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

qt qml public private-members
1个回答
5
投票

如果您将某些东西设计为私有,您会认为它只能在类中使用。

您实际上要问的是我如何解决我的设计。

显而易见的答案是 - 您可以在类中创建一个公共包装器,它将调用您的私有方法并将此公共包装器发布到 QML 中,但如果您遇到这种情况,我建议您检查设计。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.