可以只使用 Qt 和 WebAssembly 而不是 HTML/CSS/JavaScript 来开发前端 Web 应用程序吗?

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

我是一名C++程序员,但由于某种原因,我必须自己开发一个网站(我自己的商业项目)。我不想花很多时间去学习 JavaScript 和其他东西。

是否可以只使用 Qt 和 WebAssembly 而不是 HTML、CSS 和 JavaScript 来开发前端 Web 应用程序?

c++ qt web frontend webassembly
2个回答
5
投票

是的,这是绝对可能的,我目前正在做一个项目,但你应该根据项目需求、运行环境和你自己的背景仔细去做。 以下是您可能会遇到的一些问题:

  1. 输出的 .wasm 文件可能会太大。一般来说,它不适合公共领域应用程序。
  2. 在低端设备中,如果您没有进行足够的代码级优化,也许您会发现它很滞后。
  3. 主流浏览器尚未正式支持线程(截至 2019 年 12 月),但技术预览版可用。这并不是一个真正的大问题,因为它很快就会成为标准功能。
  4. 本机虚拟键盘无法在移动设备上使用,但工作正在进行中。

这些是我自己使用 Qt for WebAssembly 时遇到的主要问题。 尽管如此,我发现它比 HTML+CSS 灵活得多。 QML 确实是一种很好的 UI 开发语言。创建动画 UI 非常简单且直接。 您还可以在 QML 代码中使用许多 JavaScript 库,例如 Lodash 和 Moment 或任何其他不引用或操作窗口 DOM 的 js 库。


1
投票

是的,这是可能的。但如果学习新技术的理由被拒绝,你就不应该这样做。 目前(我在 Qt 5.14 存在时写这个答案)Qt for webassemble 已部署为官方平台。不幸的是,这是一个年轻的平台支持,存在很多问题并且未来可能会发生变化。 Qt 团队做得非常好,所以下一个版本会更好。在 WebAssembly 环境中,5.14 比 5.13 好得多,但仍需要修复。 您应该知道 Qt for web assembly 仅支持少数 Qt 模块,不包括小部件。是的,您只能将 QML 用于 GUI。 Qt for web assembly 的创建是为了在其他平台上移植一个代码库(通常是 Qt 开发方式,请参阅 Qt for MCU)。与该堆栈中的其他技术(例如 QRemoteObject)一样,这是非常有趣的技术。它不是为普通网络中的网站创建的。 WebAssembly 的 Qt 主要目标是内部网络系统和设备的远程控制。请注意这一点。 不幸的是,并非所有浏览器都支持 WebAssembly。请参阅 Qt 以获得 weassemble 支持说明。 另外,在 Qt 中,您找不到内置的 Rest-API 句柄或其他标准 Web 技术来与您现有的支持集成。

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