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();
}
相關文章
- Tkinter (20) 頂層視窗部件 Toplevel
- Tkinter (14) 可調尺寸窗格部件 PanedWindow
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- QT視窗類QT
- Go Qt5 建立空白視窗、視窗居中及關閉視窗事件GoQT事件
- Qt之彈出介面顯示在父視窗中間QT
- Qt TCP (小型聊天視窗)QTTCP
- AutoCAD快速入門(二):圖形視窗
- Qt 設定視窗居中顯示QT
- qt的無邊框視窗支援拖拽、Aero Snap、視窗陰影等特性QT
- C#中關閉子視窗而不釋放子視窗物件的方法C#物件
- Tkinter (32) 可調尺寸窗格部件 ttk.PanedWindow
- SQL輕鬆入門(5):視窗函式SQL函式
- 視窗
- Qt+ECharts開發筆記(二):Qt視窗動態調整大小,使ECharts跟隨Qt視窗大小變換QTEcharts筆記
- 【QT】QT如何讓視窗放置在螢幕正中間QT
- SDL3 入門(2):第一個視窗
- Flink的滾動視窗、會話視窗、滑動視窗及其應用會話
- Windows API視窗程式設計 - 空白視窗WindowsAPI程式設計
- Qt 讓彈出的視窗居中顯示QT
- Qt5.12視窗螢幕居中顯示QT
- MFC TabControl外掛 非對話方塊類中獲得主視窗和子視窗的指標指標
- layer父介面呼叫子彈窗的方法和獲取子彈窗的元素值總結
- 拆分視窗
- 聊天視窗
- 視窗事件事件
- 開源專案 Qt Esay Designer (Qt視窗設計器)QT
- mysql視窗函式中的滑動視窗MySql函式
- Qt學習第四篇(主視窗和ui的使用)QTUI
- Caliburn.Micro入門教程5,視窗管理器
- C# 如何重複呼叫父窗體中的子窗體C#
- 文字的適應父部件的大小
- 彈出視窗
- 視窗程式框架框架
- Tkinter (39) 樹檢視部件 ttk.TreeviewView
- pyqt5建立主視窗(介紹視窗型別)QT型別
- 34.qt quick-Popup彈出視窗自定義QTUI
- 廣告彈窗/小視窗程式碼
- 附例項!實現iframe父窗體與子窗體的通訊