Running a Qt app over the web

If all you have is a Qt application, then the best you can do is use Qt 5 and run it using a remote visualization package:

  1. Use WebGL streaming, introduced in Qt 5.10. Qt exposes a browser-connectible interface directly, without need for third-party code.

  2. For Qt 5.0-5.9, you can use the vnc platform plugin. Then connect using a web-browser based vnc client.

For many uses it might be sufficient, and certainly it's much less effort than coding up a web app.


Interestingly, it is possible to compile Qt applications to javascript using emscripten-qt. These run fairly fast with Firefox's asm.js interpreter:

http://vps2.etotheipiplusone.com:30176/redmine/projects/emscripten-qt/wiki


For the case of QML there is QmlWeb which is a JavaScript library that is able to parse QML-code and create a website out of it using normal HTML/DOM elements and absolute positions within CSS, translating the QML properties into CSS properties.

QmlWeb is a small project by Lauri Paimen that he’s already developing for a few years now. QmlWeb of course doesn’t yet support everything Qt’s implementation of QML does, but it already supports a quite usable subset of it. It supports nearly all of the most basic QML syntax. Moreover it has support for HTML input elements (Button, TextInput, TextArea are currently supported, more to come).

Well, QmlWeb is not finished. I hope Digia help with this project to make it ready with mature features.


You're looking for Wt which provides a different set of drawing routines for many Qt GUI elements, turning them from lines on screen to HTML controls.

http://www.webtoolkit.eu/wt

It also handles websocket calls to provide interactivity. It seems a great idea, let us know how it works in practice.