【问题标题】:QML access to non invocable functionsQML 访问不可调用的函数
【发布时间】:2013-01-03 08:05:14
【问题描述】:

我需要访问未标记为 Q_INVOKABLE 或 Q_SLOTS 的函数。 Qt 脚本模块具有称为defaultPrototype 的机制。我想知道在 QML 中是否可能?

我看到 QtDevDays 演示了QtDD12 - QtQuick under the hood - Thomas McGuire ,并且在 18 分钟时,Thomas 展示了纯 QML 小部件应用程序。我认为如果不将一些不可调用的函数导出/暴露到脚本环境,你就无法实现它。

QML 中是否有类似 QtScript 中的 defualtPrototype 的机制?

【问题讨论】:

    标签: c++ qt qml qt-quick qtscript


    【解决方案1】:

    QML 在后台使用 Qt 脚本,因此使用默认原型机制是完全可能的。唯一的问题是获取声明式引擎的脚本引擎,因为它们没有明显的 API。请查看 libkdeclarative 中的 code,尤其是 KDeclarative::initialize(),以获得可行的 hack。

    【讨论】:

    • 实际上它可以部分工作。 Prototype 不适用于 QmlEngine 实例化的对象,但适用于 JavaScript 实例化的对象。
    猜你喜欢
    • 2012-03-19
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2015-09-27
    • 2021-04-09
    • 1970-01-01
    相关资源
    最近更新 更多