如何通过C++后端将Qt qml移植到web服务器

How to port Qt qml to web server with C++ backend

本文关键字:web 服务器 qml Qt 何通过 C++ 后端      更新时间:2023-10-16

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

如果是,你有什么例子可以做到这一点吗?

非常感谢您的回答:)

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

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

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

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

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

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

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

这两个堆栈完全不同。

Html画布和Qml画布(它们几乎共享相同的api)出现异常。但这些都是以即时模式工作的图形(而不是以保留模式工作的SVG或Qml场景图)。

<小时>

话虽如此。。。

有3次尝试将Qml端口到web:

  • 谷歌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)。

否。您不能编译QML,而且在任何形式下都不能将其部署到JBoss等Java应用程序服务器上。Qml严格用于创建要在本地机器上运行的应用程序。听起来你想用HTML构建一个Web应用程序,它有一些后端,比如.Net。