Widget 和布局

小部件

Widgets 是在 Qt 中創建用戶界麵的首要元素。 小部件 可以顯示數據和狀態信息,接收用戶輸入,及為應被分組在一起的其它 Widget 提供容器。未嵌入到父級 Widget 中的 Widget,稱為 window .

A parent widget containing various child widgets.

The QWidget 類提供渲染到屏幕及處理用戶輸入事件的基本功能。Qt 提供的所有 UI 元素是子類化的 QWidget ,或被用於連接 QWidget 子類。創建自定義 Widget 的完成,是通過子類化 QWidget 或適當子類並重實現虛擬事件處理程序。

布局

布局 是在容器中自動排列子級 Widget 的優雅 靈活方式。每個 Widget 嚮布局報告其尺寸要求透過 sizeHint and sizePolicy 特性,且布局會相應地分配可用空間。

Qt Designer 是交互創建和在布局中排列 Widget 的強大工具。

Widget Styles

樣式 代錶 Widget 繪製,並封裝 GUI 的外觀和感覺。Qt 的內置 Widget 使用 QStyle 類來履行其幾乎所有繪製,確保看起來準確像等效本機 Widget。

Qt 樣式錶 是允許定製 Widget 外觀的強大機製,除瞭可能已有的,通過子類化 QStyle .

Widget 類

下列章節列錶 Widget 類。見 Qt Widget 圖庫 舉的一些範例。

Basic Widgets

這些基本 Widget (控件),如按鈕 組閤框及滾動條,被設計為可直接使用。

QCheckBox 帶文本標簽的復選框
QComboBox 組閤按鈕和彈齣列錶
QCommandLinkButton Vista 風格的命令鏈接按鈕
QDateEdit 用於編輯日期的 Widget (基於 QDateTimeEdit 小部件)
QDateTimeEdit 用於編輯日期和時間的 Widget
QDial 四捨五入範圍控製 (像速度計或電位計)
QDoubleSpinBox 采用雙精度的自鏇框 Widget
QFocusFrame 聚焦框可以在 Widget 的正常可描繪區域之外
QFontComboBox 讓用戶選擇字體係列的組閤框
QLCDNumber 顯示帶有類似 LCD 數字的數字
QLabel 顯示文本或圖像
QLineEdit 一行文本編輯器
QMenu 用於菜單欄、上下文菜單及其它彈齣菜單的菜單 Widget
QProgressBar 水平 (或垂直) 進度條
QPushButton 命令按鈕
QRadioButton 帶文本標簽的單選按鈕
QScrollArea 把視圖捲動到另一 Widget
QScrollBar 垂直 (或水平) 滾動條
QSizeGrip 用於重置頂層窗口大小的重置大小手柄
QSlider 垂直 (或水平) 滑塊
QSpinBox 自鏇框 Widget
QTabBar 選項卡欄 (如:用於選項卡式對話框)
QTabWidget 選項卡式 Widget 的堆棧
QTimeEdit 用於編輯時間的 Widget (基於 QDateTimeEdit 小部件)
QToolBox 選項卡化 Widget 項的列
QToolButton 命令 (或選項) 的快速訪問按鈕,通常用於 QToolBar
QWidget 所有用戶界麵對象的基類

Advanced Widgets

高級 GUI Widget (如:選項卡小部件和進度條),提供更復雜的用戶界麵控件。

Phonon::VideoWidget Widget that is used to display video
QCalendarWidget 允許用戶選擇日期,基於月份的日曆 Widget
QColumnView 列視圖的模型/視圖實現
QDataWidgetMapper 在數據模型區間與 Widget 之間的映射
QDesktopWidget 對多頭係統屏幕信息的訪問
QListView 在模型中的列錶或圖標視圖
QMacCocoaViewContainer Widget for Mac OS X that can be used to wrap arbitrary Cocoa views (i.e., NSView subclasses) and insert them into Qt hierarchies
QMacNativeWidget Widget for Mac OS X that provides a way to put Qt widgets into Carbon or Cocoa hierarchies depending on how Qt was configured
QTableView 錶格視圖的默認模型/視圖實現
QTreeView 樹視圖的默認模型/視圖實現
QUndoView 顯示 QUndoStack 的內容
QWSEmbedWidget Enables embedded top-level widgets in Qt for Embedded Linux
QWebView 用於查看和編輯 Web 文檔的 Widget
QX11EmbedContainer XEmbed container widget
QX11EmbedWidget XEmbed client widget

Organizer Widgets

像分割器、選項卡欄、按鈕組等類用於組織和分組 GUI 圖元成更復雜應用程序和對話框。

QButtonGroup 用於組織按鈕 Widget 組的容器
QGroupBox 帶標題的分組框框架
QSplitter 實現分割器 Widget
QSplitterHandle Handle functionality of the splitter
QStackedWidget 每次僅一 Widget 可見的 Widget 堆棧
QTabWidget 選項卡式 Widget 的堆棧

抽象 Widget 類

抽象 Widget 類是基類。它們不能作為獨立類使用,但提供功能當子類化它們時。

QAbstractButton 按鈕 Widget 抽象基類,為按鈕提供共有功能
QAbstractScrollArea 帶按需滾動條的捲動區域
QAbstractSlider 在範圍內的整數值
QAbstractSpinBox Spinbox 和顯示值的行編輯
QDialog 對話框窗口的基類
QFrame 可以擁有框架的 Widget 基類