From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- doc/html/tutorial1-02.html | 128 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 doc/html/tutorial1-02.html (limited to 'doc/html/tutorial1-02.html') diff --git a/doc/html/tutorial1-02.html b/doc/html/tutorial1-02.html new file mode 100644 index 0000000..85da816 --- /dev/null +++ b/doc/html/tutorial1-02.html @@ -0,0 +1,128 @@ + + + + + +Qt Tutorial - Chapter 2: Calling it Quits + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

Qt Tutorial - Chapter 2: Calling it Quits

+ + +

Screenshot of tutorial two
+

Having created a window in Chapter 1, we will +now go on to make the application quit properly when the user tells it to. +

We will also use a font that is more exciting than the default one. +

/****************************************************************
+**
+** Qt tutorial 2
+**
+****************************************************************/
+
+#include <qapplication.h>
+#include <qpushbutton.h>
+#include <qfont.h>
+
+
+int main( int argc, char **argv )
+{
+    QApplication a( argc, argv );
+
+    QPushButton quit( "Quit", 0 );
+    quit.resize( 75, 30 );
+    quit.setFont( QFont( "Times", 18, QFont::Bold ) );
+
+    QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
+
+    a.setMainWidget( &quit );
+    quit.show();
+    return a.exec();
+}
+
+ + + +

Line-by-line Walkthrough +

+

    #include <qfont.h>
+
+

Since this program uses QFont, it needs to include qfont.h. Qt's font +abstraction is rather different from the horror provided by X, and +loading and using fonts has been highly optimized. +

        QPushButton quit( "Quit", 0 );
+
+

This time, the button says "Quit" and that's exactly what the program +will do when the user clicks the button. This is not a coincidence. +We still pass 0 as the parent, since the button is a top-level window. +

        quit.resize( 75, 30 );
+
+

We've chosen another size for the button since the text is a bit +shorter than "Hello world!". We could also have used QFontMetrics +to set right size. +

        quit.setFont( QFont( "Times", 18, QFont::Bold ) );
+
+

Here we choose a new font for the button, an 18-point bold font from +the Times family. Note that we create the font on the spot. +

It is also possible to change the default font (using QApplication::setFont()) for the whole application. +

        QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
+
+

connect() is perhaps the most central feature of Qt. +Note that connect() is a static function in QObject. Do not confuse it +with the connect() function in the socket library. +

This line establishes a one-way connection between two Qt objects (objects +that inherit QObject, directly or indirectly). Every Qt object can have +both signals (to send messages) and slots (to receive messages). All +widgets are Qt objects. They inherit QWidget which in turn inherits +QObject. +

Here, the clicked() signal of quit is connected to the quit() slot of a, so that when the button is clicked, the +application quits. +

The Signals and Slots documentation +describes this topic in detail. +

Behavior +

+

When you run this program, you will see an even smaller window than in +Chapter 1, filled with an even smaller button. +

(See Compiling for how to create a +makefile and build the application.) +

Exercises +

+

Try to resize the window. Press the button. Oops! That connect() +would seem to make some difference. +

Are there any other signals in QPushButton you can connect to quit? +Hint: The QPushButton inherits most of its behavior from QButton. +

You're now ready for Chapter 3. +

[Previous tutorial] +[Next tutorial] +[Main tutorial page] +

+ +


+ +
Copyright © 2007 +TrolltechTrademarks +
Qt 3.3.8
+
+ -- cgit v1.2.3