<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/espenr/tmp/qt - 3.3.8 - espenr - 2499/qt - x11 - free - 3.3.8/doc/tutorial.doc:303 -->
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >
< title > TQt Tutorial - Chapter 3: Family Values< / title >
< style type = "text/css" > < ! - -
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
-->< / style >
< / head >
< body >
< table border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
< tr bgcolor = "#E5E5E5" >
< td valign = center >
< a href = "index.html" >
< font color = "#004faf" > Home< / font > < / a >
| < a href = "classes.html" >
< font color = "#004faf" > All Classes< / font > < / a >
| < a href = "mainclasses.html" >
< font color = "#004faf" > Main Classes< / font > < / a >
| < a href = "annotated.html" >
< font color = "#004faf" > Annotated< / font > < / a >
| < a href = "groups.html" >
< font color = "#004faf" > Grouped Classes< / font > < / a >
| < a href = "functions.html" >
< font color = "#004faf" > Functions< / font > < / a >
< / td >
< td align = "right" valign = "center" > < img src = "logo32.png" align = "right" width = "64" height = "32" border = "0" > < / td > < / tr > < / table > < h1 align = center > TQt Tutorial - Chapter 3: Family Values< / h1 >
< p > < center > < img src = "t3.png" alt = "Screenshot of tutorial three" > < / center >
< p > This example shows how to create parent and child widgets.
< p > We'll keep it simple and use just a single parent and a lone child.
< p > < pre > /****************************************************************
**
** TQt tutorial 3
**
****************************************************************/
#include < < a href = "qapplication-h.html" > ntqapplication.h< / a > >
#include < < a href = "qpushbutton-h.html" > ntqpushbutton.h< / a > >
#include < < a href = "qfont-h.html" > ntqfont.h< / a > >
#include < < a href = "qvbox-h.html" > ntqvbox.h< / a > >
int main( int argc, char **argv )
{
< a href = "ntqapplication.html" > TQApplication< / a > a( argc, argv );
< a href = "ntqvbox.html" > TQVBox< / a > box;
box.< a href = "ntqwidget.html#resize" > resize< / a > ( 200, 120 );
< a href = "ntqpushbutton.html" > TQPushButton< / a > quit( "Quit", & box );
quit.< a href = "ntqwidget.html#setFont" > setFont< / a > ( TQFont( "Times", 18, TQFont::Bold ) );
TQObject::< a href = "ntqobject.html#connect" > connect< / a > ( & quit, TQ_SIGNAL(< a href = "ntqbutton.html#clicked" > clicked< / a > ()), & a, TQ_SLOT(< a href = "ntqapplication.html#quit" > quit< / a > ()) );
a.< a href = "ntqapplication.html#setMainWidget" > setMainWidget< / a > ( & box );
box.< a href = "ntqwidget.html#show" > show< / a > ();
return a.< a href = "ntqapplication.html#exec" > exec< / a > ();
}
< / pre >
< p > < h2 > Line-by-line Walkthrough
< / h2 >
< a name = "1" > < / a > < p > < pre > #include < < a href = "qvbox-h.html" > ntqvbox.h< / a > >
< / pre >
< p > We add an include of ntqvbox.h to get the layout class we'll use.
< p > < pre > < a href = "ntqvbox.html" > TQVBox< / a > box;
< / pre >
< p > Here we simply create a vertical box container. The < a href = "ntqvbox.html" > TQVBox< / a > arranges
its child widgets in a vertical row, one above the other, handing out
space according to each child's < a href = "ntqwidget.html#sizePolicy" > TQWidget::sizePolicy< / a > ().
< p > < pre > < a name = "x2300" > < / a > box.< a href = "ntqwidget.html#resize" > resize< / a > ( 200, 120 );
< / pre >
< p > We set its width to 200 pixels and the height to 120 pixels.
< p > < pre > < a href = "ntqpushbutton.html" > TQPushButton< / a > quit( "Quit", & box );
< / pre >
< p > A child is born.
< p > This < a href = "ntqpushbutton.html" > TQPushButton< / a > is created with both a text ("Quit") and a parent
(box). A child widget is always on top of its parent. When
displayed, it is clipped by its parent's bounds.
< p > The parent widget, the TQVBox, automatically adds the child centered in
its box. Because nothing else is added, the button gets all the space
the parent has.
< p > < pre > < a name = "x2302" > < / a > box.< a href = "ntqwidget.html#show" > show< / a > ();
< / pre >
< p > When a parent widget is shown, it will call show for all its children
(except those on which you have done an explicit < a href = "ntqwidget.html#hide" > TQWidget::hide< / a > ()).
< p > < h2 > Behavior
< / h2 >
< a name = "2" > < / a > < p > The button no longer fills the entire widget. Instead, it gets a
"natural" size. This is because there is now a new top-level widget,
which uses the button's size hint and size change policy to set the
button's size and position. (See < a href = "ntqwidget.html#sizeHint" > TQWidget::sizeHint< / a > () and < a href = "ntqwidget.html#setSizePolicy" > TQWidget::setSizePolicy< / a > () for more information about these functions.)
< p > (See < a href = "tutorial1-01.html#compiling" > Compiling< / a > for how to create a
makefile and build the application.)
< p > < h2 > Exercises
< / h2 >
< a name = "3" > < / a > < p > Try resizing the window. How does the button change? What is the
button's size-change policy? What happens to the button's height if
you run the program with a bigger font? What happens if you try to
make the window < em > really< / em > small?
< p > You're now ready for < a href = "tutorial1-04.html" > Chapter 4.< / a >
< p > [< a href = "tutorial1-02.html" > Previous tutorial< / a > ]
[< a href = "tutorial1-04.html" > Next tutorial< / a > ]
[< a href = "tutorial.html" > Main tutorial page< / a > ]
< p >
<!-- eof -->
< p > < address > < hr > < div align = center >
< table width = 100% cellspacing = 0 border = 0 > < tr >
< td > Copyright © 2007
< a href = "troll.html" > Trolltech< / a > < td align = center > < a href = "trademarks.html" > Trademarks< / a >
< td align = right > < div align = right > TQt 3.3.8< / div >
< / table > < / div > < / address > < / body >
< / html >