如何连接QML和Java?

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

如果 QML 用于 GUI 和 Java 来为基于 Linux 的设备开发 API,如何将 QML 与 Java 连接?

java javascript qt qml
3个回答
3
投票

跨平台集成的一种方法是使用 Web 服务。我可能会将我的 Java 代码公开为 RESTful Web 服务(请参阅JAX-RS)并使用 XMLHttpRequest 从 QML 调用它。

还值得一提的是 Java GUI 库,例如 swing / JavaFX 具有跨平台功能,因此它仍然应该在 Linux 上运行(以及运行 Java 的任何平台)。您可能根本不需要编写 QML


2
投票

我能想到的可能的方法是:

  1. Qt 占碑
  2. JNI

[您提到要告诉除这些之外的其他事情]

除此之外:

使用 qml 作为 UI,并使用 Qt-qml 绑定与 C++ 进行交互。然后通过 Java 和 C++ 通用的一些 IPC 公开这些 C++ 接口(例如,使用 Qt-Dbus 在 D-Bus 上公开某些内容,然后使用 Java-DBus 代码调用这些功能)


0
投票

Java <--Jni--> C++ <-> QML

我们记录了 C++ 和 QML 之间的通信。对于 JNI 通信,您可能需要使用QJniObject。在最近的版本(6.8+)中,还有 QJniArray。 除了文档之外,在 Qt 源代码中搜索 QJniObject,您将找到有用的示例、测试和 Qt 源代码本身作为参考。

© www.soinside.com 2019 - 2024. All rights reserved.