Graphical User Interfaces
Exam 3,
Due May 22, 2001
Discussion Group for this class
-
Required text: Beginning GTK+ and GNOME
Team sign up
Prerequisites:
Some knowledge of C++ and
object oriented programming.
Important links
Goals of this course:
To teach the student:
- Design issues involved in developing GUI programs
- High-level rapid prototyping languages for GUI development.
- Assembling the components of a GUI project.
Homework Assignments
Course outline
- Introduction to the course.
- General concepts of GUI programming
- Event-driven programming. Main event loop.
- Windowing systems. API's.
- X-Windows.How to use X-Windows.
- GUI API's for X-Windows. The need for them. Widgets.
- GTK+ and Gimp.
- Signal-driven GUI programming.
- A simple GTK+ program.
- A hello-world program for GTK+.
- Using the Gnome Desktop
(Most people running Linux will not need this).
- Basic GTK+ widgets
- Label widget
- Callback functions: gtk_signal_connect
- Button widget
- Geometry management
Term project
Perl/Tk API
-
Introduction to the Perl language
- Basic Perl data types
- Scalar vs composite data: arrays and hashes
- Coding Perl functions
- References.
-
Object-oriented programming in Perl
- Packages and classes
- Constructor functions in Perl.
User-defined storage layout.
- Class methods vs Instance Methods
- Perl garbage collection.
-
Perl/TK
- Basic widgets: MainWindow and Label. Mainloop.
- Geometry management: the pack method.
- References in Perl: use of prefix to dereference.
- Complex literal data structures.
- Multiple ways of dereferencing.
- Buttons in Perl/Tk.
- Check buttons, radio buttons
- Variable references, sharing a variable
- Geometry management: the grid widget.
- The Entry widget
- Retrieving user input from an entry widget
- Index-strings --- an introduction to the Text widget.
- Second assignment: desk calculator.
- The Text widget
- Options for creating
- Index strings
- Editing text.
- Inserting pictures and other widgets into the Text widget.
- Object-oriented design techniques.
- Third assignment: simple spreadsheet program.
- The Canvas widget.
- Tags and groups of items.
- General graphical operations.
- Item attributes.
- Background on Term project: parsing and scanning text in Perl.
- Concurrency in Perl/Tk: cooperative verses preemptive multitasking.
- Use of the update method.
- Unblocking CPU intensive phases of a GUI program.
Other GUI design systems
- the Qt library
- wxWindows
- GUI applications in Python.
Software
-
wxWindows
-
Troll Tech and the Qt widget set
Note: the free version is only available for Unix platforms.
-
TK/TCL
-
Lesstif (a free Motif clone)
Lesstif
documentation
-
KDE --- a complete (free) Unix desktop system written
using Qt
-
Amaya --- experimental web browser built
using Lesstif
-
GnuStep (an Objective-C GUI development
system based on the Next machine)
Justin R. Smith
Last modified: Mon Aug 13 12:58:57 EDT 2001