Screenshots

Current status

The first thing to mention is that lablqml (previously known as lablqt) does not provide "bindings" as people usually understand it. It started as a set of bindings, but that did not work very well: is not very easy to generate code for all the widgets, and the result would not be convenient (in a word: too much inheritance in Qt widgets).

When Qt5 was released, Qt Widgets were claimed obsolete, and a modern approach for declarative GUI was recommended. It uses QML markup to declare GUI, ECMAscript to script GUI-related actions, and C++ to implement speed-sensitive business logic.

In its current state, I think that lablqml can be used to replace C++ by OCaml in small applications. In large GUI applications, we would probably still need to implement some GUI controls in compilable language (like C++). My library doesn't allow implementing these controls in OCaml at the moment. Once we get a better idea of the use-cases where controls are needed, I'm going to improve the library. Maybe you should pick some big GUI project and rewrite the GUI for it?

Limitations

TODO

(Not sorted yet)

lablqml in OPAM

N.B.You need Qt5(>=5.2.0) to compile. Please, be sure that dev packages are installed too.

opam remote add lablqml http://kakadu.github.io/lablqml/opam
opam update
opam install lablqml        # code generator tool and library
opam install qocamlbrowser # Demo application