Qt入門(14)——父視窗部件和子視窗部件
這個例子演示瞭如何建立一個父視窗部件和子視窗部件。
我們下面使用一個單一的父視窗部件和一個獨立的子視窗部件編寫介面。
#include <qvbox.h>
我們新增了一個標頭檔案qvbox.h用來獲得我們要使用的佈局類。
QVBox box;
這裡我們簡單地建立了一個垂直的盒子容器。QVBox把它的子視窗部件排成一個垂直的行,一個在其它的上面,根據每一個子視窗部件的QWidget::sizePolicy()來安排空間。
box.resize( 200, 120 );
我們它的高設定為120畫素,寬為200畫素。
QPushButton quit( "Quit", &box );
子視窗部件產生了。
QPushButton通過一個文字(“text”)和一個父視窗部件(box)生成的。子視窗部件總是放在它的父視窗部件的最頂端。當它被顯示的時候,它被父視窗部件的邊界擋住了一部分。
父視窗部件,QVBox,自動地把這個子視窗部件新增到它的盒子中央。因為沒有其它的東西被新增了,這個按鈕就獲得了父視窗部件的所有空間。
box.show();
當父視窗部件被顯示的時候,它會呼叫所有子視窗部件的顯示函式(除非在這些子視窗部件中你已經明確地使用QWidget::hide())。
這個按鈕不再充滿整個視窗部件。相反,它獲得了一個“自然的”大小。這是因為現在的這個新的頂層視窗,使用了按鈕的大小提示和大小變化策略來設定這個按鈕的大小和位置。(請看QWidget::sizeHint()和QWidget::setSizePolicy()來獲得關於這幾個函式的更詳細的資訊。)
#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();
}
相關文章
- Qt入門(15)——使用視窗部件QT
- Qt入門(16)——組裝視窗部件QT
- Qt入門(19)——自定義視窗部件QT
- QT中 視窗部件的 背景圖片 的設定QT
- Tkinter (20) 頂層視窗部件 Toplevel
- jQuery在子視窗如何操作父視窗元素jQuery
- js如何在子視窗中關閉父視窗JS
- 討論關閉子視窗,重新整理父視窗(非模式視窗)模式
- jQuery iframe子視窗獲取父視窗元素簡單介紹jQuery
- 利用”視窗小部件“擴充套件 Lotus Symphony 應用套件
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- FineUI小技巧(5)向子視窗傳值,向父視窗傳值UI
- Qt視窗居中QT
- QT視窗類QT
- MFC操作父視窗的子控制元件控制元件
- Go Qt5 建立空白視窗、視窗居中及關閉視窗事件GoQT事件
- javascript如何在彈出視窗給父視窗賦值JavaScript賦值
- Qt之彈出介面顯示在父視窗中間QT
- qt 視窗預設居中QT
- qt視窗居中顯示QT
- Qt TCP (小型聊天視窗)QTTCP
- js實現window.open()彈出視窗和父視窗之間相互操作JS
- javascript在iframe子元素中獲取父視窗元素JavaScript
- JavaScript - 模式視窗和非模式視窗JavaScript模式
- 工作列視窗以及其子視窗結構 (轉)
- Qt 佈局管理 - 停靠視窗QT
- Qt的視窗背景及視窗風格統一與煥膚QT
- iframe裡面的頁面呼叫父視窗,左右視窗js函式的方法JS函式
- JS彈出視窗視窗的位置和大小JS
- 父窗體、子窗體關係設定
- 父視窗和iframe中物件互相傳值簡介物件
- Qt 設定視窗居中顯示QT
- Qt5:視窗居中顯示QT
- Qt視窗螢幕居中顯示QT
- qt的無邊框視窗支援拖拽、Aero Snap、視窗陰影等特性QT
- C#中關閉子視窗而不釋放子視窗物件的方法C#物件
- C# WinForm 父窗體 子窗體 傳值C#ORM
- jQuery子窗體如何取得父窗體的元素jQuery