Qt教程 家庭價值 (3)
接著Qt教程第二章內(nèi)容,這章我們將會保持這個程序的簡單性,并且只使用一個單一的父窗口部件和一個獨立的子窗口部件。
- #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();
- }
解說 :
- #include <qvbox.h>
我們添加了一個頭文件qvbox.h用來獲得我們要使用的布局類。
- QVBox box;
這里我們簡單地創(chuàng)建了一個垂直的盒子容器。QVBox把它的子窗口部件排成一個垂直的行,一個在其它的上面,根據(jù)每一個子窗口部件的QWidget::sizePolicy()來安排空間。
- box.resize( 200, 120 );
我們它的高設(shè)置為120像素,寬為200像素。
- QPushButton quit( "Quit", &box );
子窗口部件產(chǎn)生了。
QPushButton通過一個文本(“text”)和一個父窗口部件(box)生成的。子窗口部件總是放在它的父窗口部件的最頂端。當(dāng)它被顯示的時候,它被父窗口部件的邊界擋住了一部分。
父窗口部件,QVBox,自動地把這個子窗口部件添加到它的盒子中央。因為沒有其它的東西被添加了,這個按鈕就獲得了父窗口部件的所有空間。
- box.show();
當(dāng)父窗口部件被顯示的時候,它會調(diào)用所有子窗口部件的顯示函數(shù)(除非在這些子窗口部件中你已經(jīng)明確地使用QWidget::hide())。
行為
這個按鈕不再充滿整個窗口部件。相反,它獲得了一個“自然的”大小。這是因為現(xiàn)在的這個新的頂層窗口,使用了按鈕的大小提示和大小變化策略來設(shè)置這個按鈕的大小和位置。(請看QWidget::sizeHint()和QWidget::setSizePolicy()來獲得關(guān)于這幾個函數(shù)的更詳細(xì)的信息。)
【編輯推薦】