 |
Resources: To develop a GUI-based application,
you need a set of graphical controls (or widgets as they are often called)
such as buttons, check boxes, scrollbars, text fields, menus, etc. You
could write these controls yourself using C++ or some other programming
language, but generally you will use a GUI toolkit (or library) that someone
has already written for that purpose. Common toolkits are Microsoft
Foundation Classes (MFC), Motif, Tcl, AWT, Swing, Qt, or wxWidgets.
Keep in mind that whatever toolkit you choose has to work your application
programming language and operating system--these restrictions will limit
your choices somewhat. Most of the toolkits referenced above work on
both linux and Windows, except MFC (Windows only) and Motif (linux
traditionally). Tcl, AWT and Swing are compatible with Java. MFC,
Motif, Tcl, Qt, and wxWidgets work with C++.
While not necessary, a helpful addition to a GUI toolkit, is
a GUI Development application. This app helps the programmer build
user interfaces in a drag-an-drop or WYSIWYG fashion. This can be an
enormous help in productivity, and such a tool is well worth the time
invested, if you intend to build more than just a toy GUI. With GUI
programming being more pervasive than ever, it is getting common to see GUI
development built into the programming environment. As such, you can
find GUI development capabilities in Visual Studio for C#, JBuilder for
Java, Borland's C++ integrated development environment (IDE) , and several
other IDEs both commercial and freeware.
 |
GUI-Development Libraries: In CS1220, we
have chosen to introduce to you the
wxWidgets toolkit. We have selected wxWidgets, because it
commonly -used, "industrial strength", freely available, well-supported,
well-written, and compatible with C++ in both the Windows and linux
O/Ss. |
 |
GUI Building Applications: Another positive
for choosing wxWidgets is that there is a GUI development application
called DialogBocks
that is compatible with wxWidgets, and that there is a personal use
edition of this software that is well-documented and freely available.
|
|