Qt Tutorial - Chapter 3: Family ValuesJump
to comments or Add a new
comment
This example shows how to create parent and child widgets.
We'll keep it simple and use just a single parent and a lone child.
/****************************************************************
**
** Qt tutorial 3
**
****************************************************************/
#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qvbox.h>
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QVBox box;
box.resize( 200, 120 );
QPushButton quit( "Quit", &box );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
a.setMainWidget( &box );
box.show();
return a.exec();
}
Line-by-line Walkthrough
#include <qvbox.h>
We add an include of qvbox.h to get the layout class we'll use.
QVBox box;
Here we simply create a vertical box container. The QVBox
arranges its child widgets in a vertical row, one above the other, handing
out space according to each child's QWidget::sizePolicy().
box.resize( 200, 120 );
We set its width to 200 pixels and the height to 120 pixels.
QPushButton quit( "Quit", &box );
A child is born.
This QPushButton
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.
The parent widget, the QVBox, automatically adds the child centered in
its box. Because nothing else is added, the button gets all the space the
parent has.
box.show();
When a parent widget is shown, it will call show for all its children
(except those on which you have done an explicit QWidget::hide()).
Behavior
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 QWidget::sizeHint()
and QWidget::setSizePolicy()
for more information about these functions.)
(See Compiling
for how to create a makefile and build the application.)
Exercises
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 really small?
You're now ready for Chapter
4.
[Previous
tutorial] [Next
tutorial] [Main tutorial
page]
Comments are owned by the poster. For suggestions and
info, contact the webmaster.
|