我有一个使用 QML 和 C++ 的应用程序,并且想从 javascript 启动 C++ 函数。可以吗?
答案1
对的,这是可能的。
您需要做的是创建一个插件。这将允许您将 C++ 对象(并且只能是对象!)导入到您的 QML 命名空间中。由于您需要一个 C++ 函数,因此您必须创建一个“虚拟”对象,其方法只调用您想要的 C++ 函数。
为此,您需要创建两个类。一个是上面提到的虚拟对象的类。第二个将继承自第一个类QQmlExtensionPlugin
,并且必须调用它。qmlRegisterType
这只是一个概述——有关更多详细信息,请参阅Qt 文档。我还写了一个例子QML 插件用于读取文件,这应该相当接近您的需要。