Here is a tiny idea for a QT based GUI library
Manuel M. T. Chakravarty
chak@cse.unsw.edu.au
Tue, 13 Nov 2001 15:18:34 +1100
"Eray Ozkural (exa)" <erayo@cs.bilkent.edu.tr> wrote,
> I've just realized that a feature of QT 3.0[!] library, which is a well
> versed GUI library used in KDE, can make writing a GUI library quite easy.
>
> There is a class called QWidgetFactory[*] in QT 3.0 that enables application
> programmers to dynamically generate a GUI from a .ui file which is an XML
> file that describes it.
>
> If a functional combinator library would be able to generate the XML file in
> question then a GUI could be created quite easily.
>
> You also need to access objects in the created widget and implement slots for
> it, which I think should be possible using the C bindings. There are new C
> bindings for KDE and there ought to be some for QT as well.
The time consuming part in creating such a system are the C
bindings, not the XML stuff. In fact, similar functionality
is available for GTK+ already for a long while. The cool
point about it is that the graphical interface builder Glade
http://glade.gnome.org/
can generate these XML files, which you just load into your
application using a library called libglade (that
corresponds to the QWidgetFactory that you mention above).
I guess, KDE's interface builder can do the same.
There is a binding to libglade for Haskell available,
although it is not part of the main Gtk+HS distribution yet,
but I am happy to email it on request.
Cheers,
Manuel