## 8.1 主窗口框架
Qt 的 QMainWindow 類提供了一個應用程序主窗口,包括一個菜單欄( menu bar)、多 個工具欄(tool bars)、多個錨接部件(dock widgets)、一個狀態欄(status bar)以及一個 中心部件(central widget),常見的一種界面布局如圖 8-1 所示。

圖 8-1 Qt 主窗口常見布局示意圖
絕大多數現代 GUI 應用程序都會提供一些菜單、上下文菜單和工具欄。
Qt 通過引入“動作”(action)這一概念來簡化有關菜單和工具欄的編程。一個動作 就是一個可以添加到任意數量的菜單和工具欄上的項。
1\.菜單欄 菜單是一系列命令的列表。菜單可以讓用戶瀏覽應用程序并且處理一些事務,上下文菜單和工具欄則提供了對那些經常使用的功能進行快速訪問的方法,它們能夠提高軟件的使用效率。
為了實現菜單、工具欄按鈕、鍵盤快捷方式等命令的一致性, Qt 使用動作(Action) 來表示這些命令。Qt 的菜單就是由一系列的 QAction 動作對象構成的列表。而菜單欄則是 包容菜單的容器,它通常位于主窗口的頂部,標題欄的下面。一個主窗口通常只有一個菜單 欄。
2\.工具欄 工具欄是由一系列的類似于按鈕的動作排列而成的面板,它通常由一些經常使用的命令(動作)組成。工具欄的位置處在菜單欄下面、狀態欄的上面,工具欄可以停靠在主窗口的上、下、左、右這 4 個不同的位置。一個主窗口可以有多個工具欄。
3\.狀態欄
狀態欄通常是顯示 GUI 應用程序的一些狀態信息,它位于主窗口的最底部。可以在狀 態欄上添加、使用 Qt 窗口部件。一個主窗口只有一個狀態欄。
4\.錨接部件
對于一個標準的 Qt 主窗口而言,錨接部件不是必需的。錨接部件一般是作為一個容器 來使用,以包容其他窗口部件來實現某些功能。 比如 Qt 設計器的屬性編輯器、對象監視器 等都是由錨接部件包容其他的 Qt 窗口部件來實現的。它處在工具欄的內部,可以作為一個 窗口自由的浮動在主窗口的上面,也可以像工具欄一樣停靠在主窗口的左、右、上、下四個 方向上。一個主窗口可以包含多個錨接部件。
5\.中心窗口部件 中心窗口部件處在錨接部件的內部,它位于主窗口的中心,一個主窗口只有一個中心窗口部件。主窗口 QMainWindow 具有自己的布局管理器,因此在 QMainWindow 窗口上設置布局管理器或者創建一個父窗口部件為 QMainWindow 的布局管理器都是不允許的。但可以 在主窗口的中心窗口部件上設置布局管理器。
6\.上下文菜單
為了控制主窗口工具欄和錨接部件的顯隱,在默認情況下, QMainWindow 主窗口提供了 一個上下文菜單(Context Menu)。通常,通過在工具欄或錨接部件上單擊鼠標右鍵就可以激活該上下文菜單;也可以通過函數 CMainWindow::createPopupMenu()來激活該菜單。此 外,還可以重寫 CMainWindow::createPopupMenu()函數,實現自定義的上下文菜單。
- 第 1 章 走近 Qt
- 1.1 Qt 簡介
- 1.2 Qt 紀事概覽
- 1.3 Qt 套件的組成(以 Qt4.5 為準)
- 1.4 Qt 的授權
- 1.5 Qt 的產品
- 1.6 Qt 的服務與支持
- 1.7 Qt 的最新進展
- 1.8為什么選擇 Qt
- 1.9 問題與解答
- 1.10 總結與提高
- 第 2 章 Qt 的安裝與配置
- 2.1 獲取 Qt
- 2.2 協議說明
- 2.3 安裝 Qt
- 2.4 配置 Qt4 環境
- 2.5 問題與解答
- 2.6 總結與提高
- 第 3 章 Qt 編程基礎
- 3.1 標準 C++精講
- 3.2 Windows 編程基礎
- 3.3 Linux 編程基礎
- 3.4 Mac 編程基礎
- 3.5 問題與解答
- 3.6 總結與提高
- 第 4 章 Qt 4 集成開發環境
- 4.1 常見的 Qt IDE
- 4.2 Qt Creator
- 4.3 Eclipse
- 4.5 問題與解答
- 4.6 總結與提高
- 第 5 章 使用 Qt 基本 GUI 工具
- 5.1 使用 Qt Designer 進行 GUI 設計
- 5.2 使用 Qt Assistant 獲取在線文檔與幫助
- 5.3 使用 Qt Demo 學習 Qt 應用程序開發
- 5.4 問題與解答
- 5.5 總結與提高
- 第 6 章 Qt 4 程序開發方法和流程
- 6.1 開發方法
- 6.2 Hello Qt
- 6.3 幾個重要的知識點
- 6.4 問題與解答
- 6.5 總結與提高
- 第 7 章 對話框
- 7.1 QDialog 類
- 7.2 子類化 QDialog
- 7.3 快速設計對話框
- 7.4 常見內建(built in)對話框的使用
- 7.5 模態對話框與非模態對話框
- 7.6 問題與解答
- 7.7 總結與提高
- 第 8 章 主窗口
- 8.1 主窗口框架
- 8.2 創建主窗口的方法和流程
- 8.3 代碼創建主窗口
- 8.4 使用 Qt Designer 創建主窗口
- 8.5 中心窗口部件專題
- 8.6 Qt4 資源系統專題
- 8.7 錨接窗口
- 8.8 多文檔
- 8.9 問題與解答
- 8.10 總結與提高
- 第 9 章 Qt 樣式表與應用程序觀感
- 9.1 應用程序的觀感
- 9.2 QStyle 類的使用
- 9.3 樣式表概述
- 9.4 使用樣式表
- 9.5 問題與解答
- 9.6 總結與提高
- 第 10 章 在程序中使用.ui 文件
- 10.1 uic 的使用
- 10.2 Ui_YourFormName.h 文件的組成
- 10.3 編譯時加入處理.ui 文件的方法
- 10.4 運行時加入處理.ui 文件的方法
- 10.5 信號與槽的自動連接
- 10.6 問題與解答
- 10.7 總結與提高 本章主要講解了以下內容:
- 第 11 章 布局管理
- 11.1 基本概念和方法
- 11.2在 Qt Designer 中使用布局
- 11.3 基本布局實踐
- 11.4 堆棧布局
- 11.5 分裂器布局
- 11.6 自定義布局管理器
- 11.7 布局管理經驗總結
- 11.8 問題與解答
- 11.9 總結與提高
- 第 12 章 使用 Qt Creator
- 12.1 Qt Creator 概覽
- 12.2 Qt Creator 的組成
- 12.3 快捷鍵和常用技巧
- 12.4 Qt Creator 構建系統的設置
- 12.5 處理項目間依賴關系( Dependencies )
- 12.6 Qt 多版本共存時的管理
- 12.7 使用定位器在代碼間快速導航
- 12.8 如何創建一個項目
- 12.9 實例講解
- 12.10 使用 Qt Creator 調試程序
- 12.11 問題與解答
- 12.12 總結與提高
- 第 13 章 Qt 核心機制與原理
- 13.1 Qt 對標準 C++的擴展
- 13.2 信號與槽
- 13.3 元對象系統
- 13.4 Qt 的架構
- 13.5 Qt 的事件模型
- 13.6 構建 Qt 應用程序
- 13.7 總結與提高
- 附錄 A qmake 使用指南
- A.1 qmake 簡介
- A.2 使用 qmake
- 附錄 B make 命令
- B.1 命令解釋
- B.2 使用 make 自動構建
- 附錄 C Qt 資源
- C.1Qt 官方資源
- C.2 Qt 開發社區