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