Запуск приложения Qt через интернет
Я пишу приложение с использованием Qt и хочу попробовать развернуть его как веб-приложение. Я хочу, чтобы пользователь мог использовать мое приложение, получая доступ к нему через веб-браузер. Полагаю, это и есть веб-приложение? Какие у меня есть варианты? Я никогда не рассматривал ничего подобного, но я хотел бы узнать что-то новое.
EDIT: что делать, если я развернул свое приложение на сервере Linux и имел доступ пользователей/запустить его через терминал? Я думаю, написание web приложение будет более сложным, чем я изначально думал.
6 ответов
Если у вас есть приложение Qt, то лучшее, что вы можете сделать, это использовать Qt 5 и запустить его с помощью пакета удаленной визуализации:
использовать WebGL streaming, представленного в Qt 5.10. Qt предоставляет браузер-соединяемый интерфейс напрямую, без необходимости в стороннем коде.
для Qt 5.0-5.9 вы можете использовать плагин платформы vnc. Затем подключитесь с помощью веб-браузер на основе vnc клиент.
для многих применений этого может быть достаточно, и, конечно, это намного меньше усилий, чем кодирование веб-приложения.
вы ищете Wt, который предоставляет другой набор процедур рисования для многих элементов Qt gui, превращая их из строк на экране в элементы управления HTML.
Он также обрабатывает вызовы websocket для обеспечения интерактивности. Это кажется отличной идеей, дайте нам знать, как это работает на практике.
для случая QML есть QmlWeb которая является библиотекой JavaScript, которая способна анализировать QML-код и создавать веб-сайт из него, используя обычные элементы HTML/DOM и абсолютные позиции в CSS, переводя свойства QML в свойства CSS.
QmlWeb-это небольшой проект Лаури Паймена,который он разрабатывает уже несколько лет. QmlWeb, конечно, еще не поддерживает все, что делает реализация QML Qt, но она уже поддерживает довольно полезное подмножество. Он поддерживает почти весь самый базовый синтаксис QML. Кроме того, он поддерживает элементы ввода HTML (кнопка, TextInput, TextArea в настоящее время поддерживаются, еще впереди).
Ну, QmlWeb не закончен. Я надеюсь, что Digia поможет с этим проектом, чтобы сделать его готовым со зрелыми функциями.
интересно, что можно скомпилировать приложения Qt на javascript с помощью emscripten-qt. Они работают довольно быстро с asm Firefox.переводчик js:
http://vps2.etotheipiplusone.com:30176/redmine/projects/emscripten-qt/wiki
Qt не поддерживает написание веб-приложений на основе браузера. К сожалению.
для этого необходимо использовать общие технологии веб-программирования. Есть много способов, но Qt не является одним из них.
попробовать "Qt для Webassembly".
Webassembly позволяет коду C/C++ компилироваться и запускаться изначально внутри большинства браузеров:
WebAssembly (Wasm, WA)-это веб-стандарт, который определяет двоичный формат и соответствующий сборочный текстовый формат для исполняемого кода на веб-страницах. ... Он выполняется в песочнице в веб-браузере после шага проверки. Программы могут быть скомпилированы с языков высокого уровня на Модули Wasm и загружаются как библиотеки из апплетов JavaScript ... Его первоначальная цель-поддержка компиляции с C и C++, хотя также появляется поддержка других исходных языков, таких как Rust и .NET.