Line 6 creates a QLabel widget that displays "Hello Qt!". In Qt and Unix terminology, a widget is a visual
element in a user interface. The term stems from "window gadget" and is the equivalent of both "control" and
"container" in Windows terminology. Buttons, menus, scroll bars, and frames are all examples of widgets.
Widgets can contain other widgets; for example, an application window is usually a widget that contains a
QMenuBar, a few QToolBars, a QStatusBar, and some other widgets. Most applications use a
QMainWindow or a QDialog as the application window, but Qt is so flexible that any widget can be a
window. In this example, the QLabel widget is the application window.
Line 7 makes the label visible. Widgets are always created hidden so that we can customize them before
showing them, thereby avoiding flicker.
Line 8 passes control of the application on to Qt. At this point, the program enters the event loop. This is a
kind of stand-by mode where the program waits for user actions such as mouse clicks and key presses. User
actions generate events (also called "messages") to which the program can respond, usually by executing one
or more functions. For example, when the user clicks a widget, a "mouse press" and a "mouse release" event
are generated. In this respect, GUI applications differ drastically from conventional batch programs, which
typically process input, produce results, and terminate without human intervention.
For simplicity, we don't bother calling delete on the QLabel object at the end of the main() function.
This memory leak is harmless in such a small program, since the memory will be reclaimed by the operating
system when the program terminates.
It is now possible to try the program on your own machine. It should look like the one shown in Figure 1.1.
First, you will need to install Qt 4.3.2 (or a later Qt 4 release), a process that is explained in Appendix A.
From now on, we will assume that you have a correctly installed copy of Qt 4 and that Qt's bin directory is in
your PATH environment variable. (On Windows, this is done automatically by the Qt installation program.)
You will also need the program's code in a file called hello.cpp in a directory called hello. You can type
in hello.cpp yourself or copy it from the examples that accompany this book, where it is available as
examples/chap01/hello/hello.cpp. (All the examples are available from the book's web site,
http://www.informit.com/title/0132354160.)
Figure 1.1. Hello on Linux
From a command prompt, change the directory to hello, and type
qmake -project
to create a platform-independent project file (hello.pro), and then type
qmake hello.pro
to create a platform-specific makefile from the project file. (The qmake tool is covered in more detail in
Appendix B.) Type make to build the program. Run it by typing hello on Windows, ./hello on Unix,
and open hello.app on Mac OS X. To terminate the program, click the close button in the window's title
2 Part I: Basic Qt
2 Part I: Basic Qt