- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我刚刚意识到我几乎可以调用公开给 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/
我有一个派生自的基类。该基类 (BaseClass) 是一个纯 c++ 类(不是从 QObject 派生的)并实现了方法,我想将这些方法原封不动地提供给我的 QML 接口(interface)。 假设
这是我的 C++ 函数 头文件: Q_INVOKABLE void setSelection(qint64 start, qint64 end, qint64 init); 主体文件: void Se
这是我的 C++ 函数 头文件: Q_INVOKABLE void setSelection(qint64 start, qint64 end, qint64 init); 主体文件: void Se
试图了解基于 Qt/QML 的应用程序的最佳实践,其中我们将方法标记为 Q_INVOKABLE。如果我们从其中一种方法中抛出异常,会有什么后果? class Class { ... Q
这个问题在这里已经有了答案: QObject Multiple Inheritance (3 个答案) 关闭 3 年前。 我有一个有趣的问题。我不知道如何组合从 QObject 继承的两个类。在基类
我在调用 Q_INVOKABLE 函数时遇到 QML 问题。尽管我将函数标记为 Q_INVOKABLE,但我遇到了错误 TypeError: Result of expression 'azdownl
我正在尝试简化(即摆脱大量样板代码)在必须标记为“INVOKABLE”的类中创建函数。 (非常像另一个问题 other question ) 从小处着手,我只是尝试使用一个函数: #define CO
我想从 QML 调用 C++ 方法,将参数传递给它。据我所知,我应该用宏 Q_OBJECT 标记类,用 Q_INVOKABLE 标记所需的公共(public)函数。 虽然我这样做了,但我仍然遇到运行时
我有一个 C++ 方法 Q_INVOKABLE。我可以从 QML 调用此方法,它在返回基本类型(如 QString)时有效。但我不能使用自定义类型。我应该怎么做?我应该返回一个 QVariant 吗?
众所周知,在 JavaScript 中,所有函数都可以接受任意数量的参数。 在 Qt 中,您可以使用 Q_INVOKABLE 标记 QObject,其方法可从 QML 访问。例如: class myO
我有一个非常简单的任务导致绕圈子,主要是因为 QML 和 QT 的 C++ 端的分离。因此,我不需要询问具体的 QT 问题,而是需要关于应该使用哪些 QT 和 QML 函数来实现我的用例的一般性建议。
我正在尝试测试 QQmlPropertyMap 类。如果我可以将它子类化,它似乎可以很好地满足我的需求。文档 here甚至给出了一些关于如何对其进行子类化的基本说明。所述文档还指出此类派生自 QObj
我有一个带有 Q_INVOKABLE 方法的 MasterController QObject,该方法返回对 MyType 对象的 const 引用,这是从 QObject 派生的另一种类型。我在 m
我有一个 Qt 函数: void MainWindow::button_clicked(Qstring a, Qstring b, Qstring c, Qstring d) 我从 QML 收集数据,
我刚刚意识到我几乎可以调用公开给 QML 的对象的任何函数。现在我对 Q_INVOKABLE 很好奇。 Qt5 docs状态: [...] any QML code can access the fo
我有简单的 c++ 类方法: Q_INVOKABLE const QString& getRiderTypeName(const int& riderTypeIndex) const; 及其实现: c
我是一名优秀的程序员,十分优秀!