Ebuilder Version 1.0 - A widget designer for Qt
Ernie van der Meer
Oct 12 2000
--------------------------- DISCLAIMER: ------------------------------------ I make no guarantees whatsoever about the usefulness of this software. You have permission to use it and I hope it will work for you, but if it fails in any way, I will not assume any responsibility for whatever the consequences are. In short, all use of this software is at your own risk. --------------------------- DISCLAIMER: ------------------------------------
- Policy
I wrote Ebuilder in the hope that people will find it useful. If you do, use it, modify it, do whatever you want with it, as long as you don't claim you wrote the thing from the ground up. If you improve it and decide to redistribute it, then please do not use the name Ebuilder. Come up with something new.
Why create Ebuilder:
Ebuilder was mainly created for two reasons. The first is that I really
like Qt. It does exactly what I want: it's fast, it's elegant, and let's
not forget, it's cheap ;-)
My second reason for making Ebuilder was that none of the existing GUI
builders for Qt seemed to be able to make use of the very elegant parent-child
hierarchy that is offered by Qt. To my opinion, it is essential to be able
to use this type of relationship. Without it, classes like QButtonGroup make
very little sense. Moreover, I hate having to move all the widgets inside a
frame by hand because I want to move the frame. With the parent-child
relationship, the widgets inside the frame have their coordinates relative
to the frame, so if I move the frame, the sub-widgets automatically move with
it.
It was (and is) not my intention to create a graphical development environment for Qt applications. You can design the components of your application with Ebuilder and later write the main() code that connects SIGNALs and SLOTs of these components yourself. Perhaps I will add a project manager to Ebuilder later that can generate Makefiles. For now, that does not have high priority for me. There is other stuff I find much more important.
A few words on the name. Why Ebuilder? Well, it's really very simple. My name is Ernie, and I designed a GUI builder. Hence Ebuilder.
Ebuilder features:
- Allows creation of any type of QWidget (well, using the supported widget types of course).
- Provides a hierarchal view that shows the parent-child relations of the Qt widgets in your design and allows you to cut/copy/paste them.
- Uses unmodified Qt widgets to create your design. This means that your design looks exactly like the final implementation.
- Load and save capability using a text file format.
- Exports C++ header (.h) and implementation (.cc) files that compile without modification. The header file contains a single class declaration for your design.
- Allows the definition of member functions, SLOTs, SIGNALs and member variables from within the program. It is possible to add code to the constructor and destructor of the class.
- Allows you to add extra includes to your design. You may need this for member variables or simply to use the iostream classes.
- Allows you to modify most, if not all, properties of the widgets in your design through a tabdialog.
- Supports user defined widget types in your design through a rectangle with the widget class name in it. This allows you to position your own widget types in the designer and set the QWidget properties it posesses.
Ebuilder was actually partly designed using earlier versions of Ebuilder.
Missing features (in order of importance):
- A smarter TreeWidget with limited drag+drop.
- Full support for layouts.
- Command line conversion of *.wdg files to C++ code.
- Real support for QMenuBar widget.
- Support for QTabDialog widget.
Please look at the CHANGES-xxxx file for new features.
Getting started, an example:
Please read the TUTORIAL file for a complete example of how to design a simple calculator using Ebuilder.
- Ernie van der Meer (e.a.vdmeer@net.hcc.nl)
