我是一名C++程序员,但由于某种原因,我必须自己开发一个网站(我自己的商业项目)。我不想花很多时间去学习 JavaScript 和其他东西。
是否可以只使用 Qt 和 WebAssembly 而不是 HTML、CSS 和 JavaScript 来开发前端 Web 应用程序?
是的,这是绝对可能的,我目前正在做一个项目,但你应该根据项目需求、运行环境和你自己的背景仔细去做。 以下是您可能会遇到的一些问题:
这些是我自己使用 Qt for WebAssembly 时遇到的主要问题。 尽管如此,我发现它比 HTML+CSS 灵活得多。 QML 确实是一种很好的 UI 开发语言。创建动画 UI 非常简单且直接。 您还可以在 QML 代码中使用许多 JavaScript 库,例如 Lodash 和 Moment 或任何其他不引用或操作窗口 DOM 的 js 库。
是的,这是可能的。但如果学习新技术的理由被拒绝,你就不应该这样做。 目前(我在 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 技术来与您现有的支持集成。