KGUI - Another GUI builder for Qt/KDE

Contents

Why start another GUI builder?

When there are already several GUI builders for Qt and KDE, why on earth would anyone start another one? It's a reasonable question, and one I'll try to answer here.

I have tried pretty much every GUI builder that has been written for Qt, and I have drawn some conclusions that I hope will be useful for the improvement of these tools. I have some background in this having written a simple GUI builder for Motif a few years back, and in having written a lot of code using Qt and KDE including KDDL which is another approach to simple GUI creation.

I have, in general, found that each of the Qt GUI builders succeeds in one part of the task, but is much weaker in others. What I think is needed is something that is designed from the start to support the best of each system.

EBuilder has excellent support for working with the widget hierarchy using a tree view, and a reasonable property list, however it falls down in the range of widgets supported, the ease with which new widgets can be added, and by failing to provide any graphical way to construct the widget hierarchy (you cannot 'draw' your GUI).

Qt Architect has much better facilities for graphically creating the GUI, but unfortunately is extremely focused towards fixed layouts. This is ok (though IMHO not good) for programs that will only ever exist in a single language, but is unacceptable in a program that will be translated (as is likely for a KDE application). Newer versions of this program add some very basic support for layouts, but unfortunately they do not currently let you graphically construct a layout hierarchy. Qt Architect needs a custom property widget for every class to be supported which means that it is difficult to create automatic tools for adding new widgets to the system, nor does it provide a way to save widget layouts as reusable objects. A final limitation of QtEZ is that it is primarily a dialog editor with no real support for the rest of the GUI.

QtEZ provides a very simply mechanism for adding new widgets (which can be dynamically loaded from shared libraries), but again fails in other areas. The property list while being fairly functional, has no way to add support for custom layouts (like those of QtArch) if they are availble. As I see it, the property list is a generic tool that should be a available for any widget, but custom dialogs for a widget should certainly be possible. For example widgets like KTypeLayout are useless without custom property sheets. The property list in QtEZ is also unfortunately ugly - it's really just the font chosen, but it is very noticable. The final problem with QtEZ is the lack of supported widgets, though I think that is mainly due to it being fairly new.

When thinking about how I would like a Qt GUI builder to work, I find that I want parts of each of these existing tools. I want the tree view from EBuilder, the property lists from both QtArch and QtEZ, and the simply API available for adding new widgets to QtEZ. Finally I want the graphical tools QtArch provides, but I'd like it to provide support for dynamic layouts and maintaining a hierarchy of widgets too.

There are a number of reasons for this:

Aims of KGUI

Solve all the above problems, produce the worlds greatest GUI builder, then take over the world.

Features

Currently implemented features:

References

Here are the KDE or Qt GUI builders I'm currently aware of:


(c) 1999 Richard Moore <rich@kde.org>