## 1.1 Qt 簡介
首先讓我們看看業界對于 Qt 的評論:
“Qt 將幫助我們為用戶提供空前‘誘人’的應用程序。諾基亞對跨平臺 Qt 庫和 Linux 平臺的一貫投入,是免費軟件桌面和移動設備堆棧創新的主要驅動力。 ”
Mark Shuttleworth, Ubuntu 項目創始人
“Qt 是極具創新的和實用的技術。包含了 QtWebKit 的 Qt 提供了一個強大的,跨平 臺的網絡體驗,確保了我們的 3D 環境所具備的身臨其境的感覺。我們渴望將 QtWebkit 納 入到‘Second Life‘中,從而提高在 Web 上的虛擬世界的集成度。”
Linden LabJoe Miller,
Linden 實驗室平臺與技術開發部副總裁 看起來,Qt 是如此的吸引人,那么就讓我帶您走進 Qt 的世界吧。
1\.關于 Qt
Qt 是一個已經形成事實上的標準 的 C++ 框架,它被用于高性能的跨平臺軟件開發。 除了擁有擴展的 C++類庫以外,Qt 還提供了許多可用來直接快速編寫應用程序的工具。此 外,Qt 還具有跨平臺能力并能提供國際化支持,這一切確保了 Qt 應用程序的市場應用范 圍極為廣泛。
自 1995 年以來,Qt 逐步進入商業領域,它已經成為全世界范圍內數千種成功的應用 程序的基礎。Qt C++ 框架一直是商業應用程序的核心。無論是跨國公司和大型組織(例 如:Adobe?、Boeing?、Google?、IBM?、Motorola?、NASA、Skype?)、還是無數小型公司 和組織都在使用 Qt。Qt 也是流行的 Linux 桌面環境 KDE 的基礎(KDE 是所有主要的 Linux 發行版的一個標準組件)。Qt4 在新增更多強大功能的同時,旨在比先前的 Qt 版本更易于 擴展和使用。Qt 的類功能全面,提供一致性接口,更易于學習使用,可減輕開發人員的工 作負擔、提高編程人員的效率。另外, Qt 一直都是完全面向對象的,并且允許真正的組件編程。
Qt 軟件前身為 Trolltech (奇趣科技),2008 年 6 月被諾基亞收購。更多關于 Qt Software 的信息,請訪問網站 www.qtsoftware.com。
下面是 Qt4 的 Logo,Qt 通常以清新的綠色作為自己的宣傳色,圖中中間區域是一個大 寫的 Q 字母,里面斜向嵌入了大寫的 T 字母,在右上角表明了 Qt 的版本。

2\.關于 Trolltech (奇趣科技)
圖 1-1 Qt4 的 Logo
Trolltech 是由 Haavard Nord (執行總裁) 和 Eirik Chambe-Eng (總裁)于 1994 年創立的,2008 年 6 月被 NOKIA 收購。過去十幾年來,Trolltech 的銷售業績持續增長。 Trolltech 采取了成功的雙重授權戰略,為開發者提供商業和免費軟件的授權使用。 它的創始人秉持財富共享的理念,已捐獻出 Trolltech 公司 5%的資產給慈善基金會。 它擁有遍布全球 60 個國家的 4400 個客戶,其中包括 Adobe, IBM(國際商用機器公司),Sharp(夏普)、Siemens(西門子)以及其他全球知名公司。目前,擁有來自 17 個不同國家的 雇員。 Trolltech 公司的總部位于挪威的奧斯陸,并在澳大利亞的布里斯班,中國北京及 美國加利福尼亞的帕洛阿爾托設有辦事處。
3\.關于 Nokia(諾基亞)
諾基亞是移動世界的全球領先者,引領著互聯網及通信融合產業的轉型與發展。憑借多樣化的移動終端產品、軟件與服務,諾基亞為人們帶來了音樂、導航、視頻、電 視、影像、游戲、移動商務等豐富體驗。面向用戶的互聯網服務的發展以及企業解決方案和軟件業 務的增長是諾基亞發展的重點。此外,諾基亞還通過諾基亞西門子通信公司為通信網絡提供設備、解決方案和服務。
4\. Qt 支持的平臺(以 4.5 版為準)
Qt4.5 可提供于下列平臺:
+ Windows (Microsoft Windows Vista,XP, 2000, 2003,NT4, Me/98)
+ WinCE
+ Mac (Mac OS X)
+ X11 (Linux, Solaris, HP-UX, IRIX, AIX, ... 以及其他 UNIX 系統)
+ Embedded Linux
表 1-1 所示為 Qt4.5 支持的平臺和編譯器的詳細情況,表 1-2 為 Qt4.5 不支持的平臺 和編譯器的詳細情況。
表 1-1 Qt4.5 支持的平臺情況
| 軟件平臺 | 硬件架構 | Makespec | 編譯器 |
| --- | --- | --- | --- |
| Microsoft Windows | Intel 32/64-bit | win32-g++, win32-icc, win32-msvc2003, win32-msvc2005 win32-msvc2008 | GCC 3.4.2 (MinGW) (32-bit), Intel icc, MSVC 2003, MSVC 2005 (32 and 64-bit), MSVC 2008 |
| Windows CE | Intel 32-bit, ARMv4i, MIPS | Wince-msvc2005, wince-msvc2008 | Visual Studio 2005 Visual Studio 2008 |
| Linux (32 and 64- | Intel 32/64-bit, | Linux-g++ | GCC 3.3, |
| bit) | Itanium, | linux-icc | GCC 3.4, |
| MIPS | linux-icc-32 | GCC 4.0, |
| linux-icc-64 | GCC 4.1, 4.2, 4.3 |
| Embedded Linux | ARM, | qws/linux-arm-g++, | GCC 3.4, |
| Intel 32-bit, | qws/linux-x86-g++, | GCC 4.1, |
| MIPS, | qws/linux-g++ | GCC 4.2, |
| PowerPC | GCC 4.3 |
| Apple Mac OS X (32- bit) | Intel 32/64-bit, PowerPC | Macx-g++ macx-g++42 | GCC 4.0.1, GCC 4.2 |
| Solaris | SPARC, Intel 32-bit | Solaris-cc solaris-g++ | Sun CC 5.5 GCC 3.4.2 |
| AIX | PowerPC | Aix-xlc aix-xlc-64 | xlC 6 |
| HPUX | PA/RISC,Itanium | Hpux-acc hpux-g++ hpux-g++-64 hpuxi-acc | A.03.57 (aCC 3.57) GCC 3.4.4 A.06.10 (aCC 6.10) |
表 1-2 Qt4.5 不支持的平臺情況
| 軟件平臺 | 硬件架構 | Makespec | 編譯器 |
| --- | --- | --- | --- |
| Windows XP/Vista | Intel 32/64-bit | win32-msvc | Visual C++ 6.0 |
| Windows XP/Vista | Intel 32/64-bit | win32-msvc2002 | Visual Studio 2002 |
| Windows XP/Vista | Intel 32/64-bit | win32-msvc.net | Visual Studio 2002 |
| IRIX | MIPS | irix-cc | MIPS Pro |
| IRIX | MIPS | irix-g++ | GCC 3.3 |
- 第 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 開發社區