АК
Александр Кузьминых26 октября 2017 г. 7:57

Запуск приложений Qt в браузере благодаря использованию WebGL плагина

Интересная особенность пришла в Qt 5.10, это новый бэк-энд Qt, который использует WebGL для визуализации. Это позволяет приложениям Qt (с некоторыми ограничениями) работать в веб-браузере, который поддерживает WebGL.

Что это такое?

В новом бэк-энде используется WebGL, что означает Web Graphic Library . WebGL - это API JavaScript для визуализации 2D и 3D-графики в любом совместимом веб-браузере без использования плагинов. API похож на OpenGL ES 2.0 и может использоваться в элементах canvas HTML5.

Новый бэк-энд будет представлен как техническая функция предварительного просмотра в Qt 5.10.0 и включен в версии Alpha и Beta (на данный момент, Qt 5.10.0 является бета-версией на 1ом этапе разработки).

Последний исходный код также доступен в Qt git на http://code.qt.io/cgit/qt/qtwebglplugin.git/ .

Плагин распространяется либо по лицензии GPLv3, либо по коммерческим лицензиям. Обратите внимание, что он недоступен в LGPL. Одним из последствий лицензии GPL является то, что если вы ссылаетесь на нее (даже динамически), код вашего приложения попадает под GPL.


Как это использовать

Предположим, что вы собрали Qt 5.10 с плагином WebGL, плагин будет доступен в качестве бэк-энда. Чтобы использовать его, передайте в ваше приложение опцию -platform webgl , а затем откройте веб-браузер по адресу http://localhost:8080/ .

Плагин поддерживает конфигурацию сетевого порта, используемого встроенным HTTP-сервером. Если вы хотите использовать HTTP-порт по умолчанию, вы можете, например, использовать опцию -platform webgl:port=80 .

Плагин устанавливается в QTDIR /plugins/platforms/libqwebgl.so (в Windows путь аналогичен).

Ограничения

С выпусками Alpha и Beta 1 Qt 5.10.0 плагин WebGL успешно работал в системе Ubuntu Linux 17.04 с использованием браузера Chromium.

Он должен работать с другими браузерами, поддерживающими WebGL, включая мобильные и встроенные браузеры. Предполагается, что вы также можете запустить его в представлении QtWebEngine вместо обычного браузера. Пока что еще нет документации (т.к. всего лишь Beta 1), за исключением нескольких сообщений в блоге.

Плагин поддерживает только приложения QML. Неизвестно, будет ли он поддерживать виджеты. По словам разработчиков, поддержку виджетов будет трудно достичь с хорошей производительностью, потому что они полагаются на растеризацию.

Вы можете подумать, что запуск в браузере означает, что приложение будет работать в песочнице и не иметь доступа к каким-либо ресурсам за пределами браузера, например файлам. Однако в браузере выполняется только рендеринг, а само приложение работает как обычное приложение (однако оно может не работать на том же компьютере, что и на дисплее).

Опыт

С Qt 5.10.0 Beta 1 несколько примеров QML, которые были пробованы, работали достаточно хорошо. Некоторые из них столкнулись с некоторыми проблемами, а некоторые не запускались вообще. Вот скриншоты из нескольких примеров.

Qt Quick Controls Text Editor:

Qt Quick Controls Gallery:

QML Photoviewer:

SameGame:

Заключение

В прошлом решение о разработке приложения, которое может запускаться нативно или в веб-браузере, обычно подразумевало использование значительно отличающихся стратегий (например, использование Qt/QML или использование HTML5). Предполагая, что плагин WebGL становится стабильным и завершенным, он предложит привлекательный подход для разработки веб-приложений используя Qt и для превращения нативного приложения Qt на базе QML в веб-приложение с минимальными усилиями. Тем не менее, имейте в виду последствия лицензирования, когда вы решаете, использовать ли коммерческую или версию с открытым исходным кодом Qt.

Я с нетерпением жду, когда плагин WebGL будет задокументирован и станет более завершенным в выпуске Qt 5.10.0 в конце этого года

Ссылки

  1. http://blog.qt.io/blog/2017/10/09/qt-5-10-beta-released/
  2. http://blog.qt.io/blog/2017/09/13/qt-5-10-alpha-released/
  3. http://blog.qt.io/blog/2017/02/22/qt-quick-webgl-streaming/
  4. http://blog.qt.io/blog/2017/07/07/qt-webgl-streaming-merged

Статья написана: Jeff Tranter | Среда, Октябрь 25, 2017г.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:50баллов,
  • Очки рейтинга-4
m
  • molni99
  • 26 октября 2024 г. 11:37

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:80баллов,
  • Очки рейтинга4
m
  • molni99
  • 26 октября 2024 г. 11:29

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:20баллов,
  • Очки рейтинга-10
Последние комментарии
i
innorwall14 ноября 2024 г. 22:42
Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
i
innorwall14 ноября 2024 г. 20:09
Qt/C++ - Урок 068. Hello World с использованием системы сборки CMAKE в CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
i
innorwall14 ноября 2024 г. 15:05
EVILEG-CORE. Использование Google reCAPTCHA 2001; 98 29 34 priligy buy
i
innorwall14 ноября 2024 г. 15:00
PyQt5 - Урок 007. Работаем с QML QtQuick (Сигналы и слоты) priligy 30mg Am J Obstet Gynecol 171 1488 505
Сейчас обсуждают на форуме
i
innorwall14 ноября 2024 г. 14:39
добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
i
innorwall11 ноября 2024 г. 21:55
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
9
9Anonim25 октября 2024 г. 19:10
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Игорь Максимов3 октября 2024 г. 14:05
Реализация навигации по разделам Спасибо Евгений!

Следите за нами в социальных сетях