6

是否可以在 QML 和 C++ 中编写我的应用程序的前端并以某种方式编译它,以便我可以将它部署到像 Apache 或 JBoss 这样的 Web 服务器,以便可以从 Web 浏览器中访问它?

如果是,您是否有任何示例如何执行此操作?

非常感谢您的回答:)

我试图在互联网上找到我的问题的答案,但没有成功。

4

3 回答 3

4

QmlWeb 是一个 JavaScript 库,能够解析 QML 代码并使用普通 HTML/DOM 元素和 CSS 中的绝对位置创建网站,将 QML 属性转换为 CSS 属性。

QmlWeb 是一个小项目,主要由 Lauri Paimen 发起,他开发了几年,现在是由 Anton Kreuzkamp 维护的 KDE 项目。

QmlWeb 当然还不支持 Qt 的 QML 实现所做的一切,但它已经支持它的一个非常有用的子集。它支持几乎所有最基本的 QML 语法。此外,它还支持 HTML 输入元素(目前支持 Button、TextInput、TextArea,未来还会支持更多)。

好吧,QmlWeb 还没有完成。我希望 Digia 能帮助这个项目,使其具备成熟的功能。

于 2014-05-05T13:16:21.230 回答
3

javascript 当前位于 v8 之上,但用于表达复杂绑定和一些(最好是小的)客户端逻辑。但是引擎可能会改变(http://blog.qt.digia.com/blog/2013/04/15/evolution-of-the-qml-engine-part-1/)。

就像在浏览器中一样,实际的图形有点与 javascript 正交,它只能与已经存在的图形对象交互(或实例化)。在浏览器中,图形由 html/css/svg/dom 描述,并由用 C++ 编写的 Web 引擎解释。在 QtQuick 中,图形是用 Qml 编写的,并由用 C++ 编写的 qml 引擎(场景图)解释。

两个栈完全不同。

Html 画布和 Qml 画布(它们几乎共享相同的 api)的例外。但这些是在即时模式下工作的图形(与 SVG 或 Qml 场景图相反,以保留模式方式工作)。


话虽如此...

有 3 次尝试将 Qml 移植到 Web:

  • 一个到 Google Nacl 的 Qt 端口(很久没听说过,很可能已经死了)
  • 通过 Emscripten/asm.js 移植 Qt(很棒的项目,但不适合生产,我认为甚至不支持 QtQuick ......可能需要付出巨大的努力才能积极维护)
  • QmlWeb(用于翻译 Qml 文件并在 HTML5 堆栈之上解释这些文件的 JavaScript api)。正在进行的工作,从长远来看,可能只会支持整个 QtQuick 生态系统的一部分。但仍然是一个非常有趣的项目,也许是这三个项目中最有前途的。至少,它是最年轻的,它可能会从 KDE 社区获得一些牵引力。http://akreuzkamp.de/2013/07/10/webapps-written-in-qml-not-far-from-reality-anymore/

您可能还对位于 Web 堆栈之上的其他场景图形技术(amino、cake.js、rapahel.js...)感兴趣。

最后但同样重要的是,您可能会对 Wt ( http://www.webtoolkit.eu/wt ) 感兴趣。

于 2013-08-02T14:07:47.617 回答
0

不可以。您不能编译 QML,并且不能以任何形式将其部署到 Java 应用程序服务器上,例如 JBoss。Qml 严格用于创建在本地机器上运行的应用程序。听起来您想用 .Net 之类的后端从 HTML 构建 Web 应用程序。

于 2013-07-29T18:09:50.560 回答