DroidScript
DroidScript
инструменты для мобильной разработки

Qt 5.12.1: запуск приложений Qt Quick в браузере

Qt Quick  
25.03.2019

Разговоры о запуске QML в браузерах, поддерживающих WebGL, велись давно, но реальность наступила вместе с появлением новой версии Qt 5.12.1. Прощая HTML, здравствуй QML? Не будем торопиться.

В отличие от PureQML родные QML-проекты запускаются без изменения кода. Для этого необходимо при установке или дополнении Qt установить плагин "Qt WebGL Streaming Plugin". После этого создайте приложение Qt Quick и запустите его со следующими аргументами командной строки:

./your-qt-application -platform webgl

, где your-qt-application - имя проекта

После этого по адресу http://127.0.0.1:8080/ будет запущен легковесный сервер. Если что-то не работает, обновите браузер до последней версии (подробности в блоге Qt). Последние версии Firefox, Chrome и Opera успешно открыли мой пример. IE 11 смог отобразить лишь чёрный экран.

Плагин работает с несколькими ограничениями:

  • Потоковая передача команд по сети накладывает определенную задержку по сравнению с локальным запуском приложения
  • Настольные приложения, использующие Qt Widgets, не поддерживаются плагином
  • Текстовые элементы могут отображаться некорректно, если установлена ​​опция типа рендеринга Text.NativeRendering
  • Разрешается только один активный клиент на процесс. Последующие клиенты, пытающиеся подключиться к серверу, будут видеть индикатор загрузки, пока предыдущий клиент не отключится
  • Потоковое аудио не поддерживается

Хорошо, открываем в Safari на iOS... растровый интерфейс?! Так точно, а вы что ожидали увидеть? Есть мнение, что потоковая передача WebGL будет использоваться в основном с использованием встроенных платформ: на каком-либо устройстве (Raspberry Pi и др.) запускается приложение, основанное на Qt, а на телефоне или планшете открывается браузер для взаимодействия с ним.

Qt Quick  
© 2016-2018 Александр Страшко