Spec-Zone.ru › Qt 5.14

Qt для WebAssembly

WebAssembly — это двоичный формат, позволяющий использовать исполняемый код в веб-страницах в защищённой среде. Этот формат почти так же быстр, как и машинный код, и теперь поддерживается всеми основными веб-браузерами.

Qt для WebAssembly — это плагин платформы, который позволяет создавать приложения Qt, которые могут быть интегрированы в ваши веб-страницы. Он не требует установки клиента и уменьшает использование ресурсов на стороне сервера.

Начало работы с Qt для WebAssembly

Установка Emscripten

emscripten — это инструментарий для компиляции в asm.js и WebAssembly. Он позволяет запускать Qt в веб-среде с почти родной скоростью без плагинов.

Обратитесь к документации emscripten для получения более подробной информации о проверке SDK Emscripten и установке и активации Emscripten для вашей версии Qt.

После установки emscripten должен быть в вашей переменной PATH. Проверьте это с помощью следующей команды:

em++ --version

Каждая небольшая версия Qt поддерживает известную хорошую версию Emscripten. Эта версия Emscripten будет поддерживаться на протяжении всего срока службы данной версии Qt.

Известные хорошие версии:

  • Qt 5.12: 1.38.16
  • Qt 5.13: 1.38.27 (многопоточность: 1.38.30)
  • Qt 5.14: 1.38.27 (многопоточность: 1.38.30)

Используйте emsdk для установки конкретных emscripten версий. Например, для установки для Qt 5.13 введите:

  • ./emsdk install sdk-fastcomp-1.38.27-64bit
  • ./emsdk activate --embedded sdk-fastcomp-1.38.27-64bit

Опция --embedded полезна, если вы хотите установить несколько версий SDK. Она находит все файлы конфигурации и кеши внутри SDK, чтобы избежать конфликтов между различными версиями.

После установки emscripten должен быть в вашей переменной PATH. Проверьте это с помощью следующей команды:

em++ --version

Загрузка библиотек

Бинарные сборки можно загрузить в разделе «Загрузки» с помощью вашей учётной записи Qt.

Сборка Qt из исходных кодов

В качестве альтернативы, вы можете загрузить исходные коды Qt в разделе «Загрузки» и собрать Qt из них.

Настройте Qt как кросс-компиляцию для wasm-emscripten платформы. Это неявно установит опции «-static» и «-no-feature-thread». Передайте опцию -compile-examples для включения примеров.

./configure -xplatform wasm-emscripten -nomake examples -prefix $PWD/qtbase

В Windows убедитесь, что у вас установлены MinGW и sed в PATH, и выполните настройку следующим образом:

configure -no-warnings-are-errors -xplatform wasm-emscripten -platform win32-g++ -nomake examples -prefix %CD%\qtbase

Сборка необходимых модулей:

make module-qtbase module-qtdeclarative [other modules]

Сборка Qt является статической и не поддерживает потоки.

Сборка и запуск приложения

$ /path/to/qt-wasm/qtbase/bin/qmake
$ make

Это создаёт следующие файлы:

Сгенерированный файл Краткое описание
app.html Контейнер HTML
qtloader.js JS API для загрузки приложений Qt
app.js JS API для загрузки приложений Qt
app.wasm Бинарный файл приложения emscripten

При развертывании приложения сжатие обычно выполняется на стороне сервера. Мы рекомендуем сжимать wasm-бинарники, так как это обычно уменьшает размер файла на 50%.

Тестирование приложения

Вы можете запустить приложение следующим образом:

/path/to/emscripten/emrun --browser=firefox appname.html

Примеры

  • Пример отображения логотипа Qt с помощью вызовов OpenGL
  • Пример использования в автоматизации производства
  • Галерея доступных элементов управления в Qt Quick Controls
  • Простой текстовый редактор, написанный с помощью Qt Widgets

Ограничения

Самое важное ограничение заключается в том, что сборка Qt статическая и не поддерживает потоки.

Для получения дополнительной информации см. Known_issues_and_platform_notes.

Внешние ресурсы

  • Qt для WebAssembly – предварительный технологический просмотр
  • Qt и WebAssembly
  • Вики Qt для WebAssembly
  • Начало работы с Qt для WebAssembly
  • Удаленные пользовательские интерфейсы с WebGL и WebAssembly
  • Веб-сайт ресурсов WebAssembly

Лицензии

Qt для WebAssembly доступен по коммерческим лицензиям от The Qt Company. Кроме того, он доступен по GNU General Public License, версия 3. Для получения дополнительной информации см. Лицензирование Qt.

См. также Веб-сайт ресурсов WebAssembly, Начало работы с Qt для WebAssembly и Удаленные пользовательские интерфейсы с WebGL и WebAssembly.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/wasm.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API