gpt4 book ai didi

c++ - Q_INVOKABLE 是否需要在 Qt5 中从 QML 调用公共(public) QObject 函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:30 25 4
gpt4 key购买 nike

我刚刚意识到我几乎可以调用公开给 QML 的对象的任何函数。现在我对 Q_INVOKABLE 很好奇。 Qt5 docs状态:

[...] any QML code can access the following members of aninstance of a QObject-derived class:

  • Properties

  • Methods (providing they are public slots or flagged withQ_INVOKABLE)

  • Signals

Since Qt5 (在 C++ 中)我可以像槽一样调用 QObject 的任何公共(public)函数,即我不必将它们声明为“公共(public)槽”。这是否意味着我可以从 QML 调用任何方法?我在文档中找不到任何内容。

最佳答案

是的,您必须使用 Q_INVOKABLE 标记您的 QObject 函数,除非它是一个 public slot 以便能够从 QML 调用它。

Q_INVOKABLE 和 slots 关键字都使用 Qt 元系统 注册您的函数。不同之处在于使用 Q_INVOKABLE 您可以返回值

关于c++ - Q_INVOKABLE 是否需要在 Qt5 中从 QML 调用公共(public) QObject 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35335564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com