Qt 5開發及實例(第4版)(含典型案例視頻分析) ( 簡體 字) |
作者:陸文周 | 類別:1. -> 作業系統 -> Linux -> QT |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 50934 詢問書籍請說出此書號!【缺書】 NT售價: 645 元 |
出版日:3/1/2019 |
頁數:764 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121361579 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Qt是軟件開發領域中非常著名的C++可視化開發平臺,能夠為應用程序開發者提供建立藝術級圖形用戶界面所需的所有功能。它是完全面向對象的,很容易擴展,并且可應用于組件編程。相對于Visual C++,Qt更易于學習和開發。 2014年,我們編寫了《Qt 5開發及實例》,受到市場的廣泛歡迎。2015年,《Qt 5開發及實例》(第2版)推出,它以Qt 5.4為平臺,增加了關于QML及Qt Quick開發的內容,繼續受到市場的廣泛推崇。2017年,以Qt 5.8為基礎,推出《Qt 5開發及實例》(第3版),市場持續熱銷。 本書以Qt 5.11為平臺,介紹內容包括Qt概述,模板庫、工具類及控件,布局管理,基本對話框,主窗口,圖形與圖片,圖形視圖框架,模型/視圖結構,文件及磁盤處理,網絡與通信,事件處理及實例,多線程,數據庫,操作Office,多國語言國際化,單元測試框架,QML編程基礎,QML動畫特效,Qt Quick Controls開發基礎,Qt Quick Controls 2新穎界面開發等。 本書在上一版的基礎上對綜合實例進行了重新設計,對Qt功能進行了大幅擴展。全書分為以下5個部分。 第1部分為Qt基礎(第1章∼第16章),在上一版的基礎上增加了關于Qt操作表格處理軟件Excel數據和字處理軟件Word數據的內容。 第2部分為Qt綜合實例(第17章∼第19章),重新設計了【綜合實例】電子商城系統、【綜合實例】MyWord字處理軟件、【綜合實例】微信客戶端程序。電子商城系統主要突出Qt界面和對常用關系數據庫(MySQL)的基本操作;微信客戶端程序主要突出Qt網絡功能和XML操作;MyWord字處理軟件主要介紹以界面方式創建菜單、工具欄,系統介紹豐富的文本處理方法。 第3部分為Qt擴展應用:OpenCV(第20章∼第22章),介紹了Qt配置OpenCV-3.4.3及其圖片處理;顯示圖片,設置圖片通道顏色,改變其飽和度和亮度,多圖合成,圖片放大、縮小、旋轉,各種濾波器平滑技術;從圖片中智能檢索匹配物體、基本人臉識別技術;綜合實例為醫院遠程診斷系統,介紹內容包括打開CT相片、實現用霍夫圓算法對CT病灶區進行識別檢測的功能;數據庫采用MySQL,對患者信息進行管理。 第4部分為QML和Qt Quick及其應用(第23章∼第27章),包括上一版QML及Qt Quick的相關內容,【綜合實例】仍然為多功能文檔查看器。 第5部分為附錄,附錄A介紹C++相關知識,附錄B介紹Qt 5簡單調試。 為了方便讀者上機練習,在書中介紹實例時提供源代碼編號CH×××(如CH201是第2章的01例);本書還提供了配套的視頻分析,分析本書重點內容和綜合實例。這些源代碼和配套的視頻分析可從華信教育資源網免費下載。 為了方便讀者理解綜合應用,本書對典型的【綜合實例】通過掃描二維碼提供視頻分析。 通過學習本書,結合實例上機練習,一般能夠在比較短的時間內系統、全面地掌握Qt 5應用技術。 本書由陸文周擔任主編。參加本書編寫的還有周何駿、孫德榮、鄭博琳、王鋼花、劉美芳、盧霞、秦洪林、劉博文、劉忠等。 由于編者水平有限,錯誤之處在所難免,敬請廣大讀者、師生批評指正。
編 者 |
內容簡介:Qt是軟件開發領域中非常著名的C++可視化開發平臺。本書以Qt 5.11為平臺,介紹Qt和QML編程及其應用開發。全書分為5個部分。第1部分為Qt基礎,在上一版的基礎上增加了Qt操作表格處理軟件Excel數據和字處理軟件Word數據的內容。第2部分為Qt綜合實例,重新設計了電子商城系統、MyWord字處理軟件、微信客戶端程序。第3部分為Qt擴展應用OpenCV,首先配置OpenCV-3.4.3,然后介紹典型圖片處理。第4部分為QML和Qt Quick及其應用,介紹了QML及Qt Quick相關內容,【綜合實例】為多功能文檔查看器。第5部分為附錄,介紹了C++相關知識和Qt 5簡單調試。本書提供配套的視頻,分析典型案例,通過掃描二維碼播放。為了方便讀者上機練習,書中實例提供源代碼,其編號為CH×××。源代碼及其工程文件可從華信教育資源網免費下載。本書既可作為Qt 的學習和參考用書,也可作為大學教材或Qt 5培訓用書。 |
目錄:第1部分 Qt 基 礎 第1章 Qt概述 1 1.1 什么是Qt 1 1.2 Qt 5的安裝 2 1.2.1 下載Qt和申請免費賬號 2 1.2.2 安裝Qt 5.11 4 1.2.3 運行Qt Creator 6 1.2.4 Qt 5開發環境 7 1.3 Qt 5開發步驟及實例 8 1.3.1 設計器Qt Designer實現 9 1.3.2 代碼實現簡單實例 15 1.3.3 Qt低版本實例遷移 18 L1.2 Qt 5的安裝:概念解析 19 伙伴編輯模式(Edit Buddies) 19 L1.3 Qt 5開發步驟及實例:概念解析 19 L1 信號和槽機制(Signal & Slot) 19 L2 Qt 5元對象系統 21 L3 布局管理器 21 第2章 Qt 5模板庫、工具類及控件 22 2.1 字符串類 22 2.1.1 操作字符串 22 2.1.2 查詢字符串數據 23 2.1.3 字符串的轉換 24 2.2 容器類 25 2.2.1 QList類、QLinkedList類和QVector類 26 2.2.2 QMap類和QHash類 31 2.3 QVariant類 33 2.4 算法及正則表達式 36 2.4.1 Qt 5常用算法 36 2.4.2 基本的正則表達式 37 2.5 控件 37 2.5.1 按鈕組(Buttons) 38 2.5.2 輸入部件組(Input Widgets) 39 2.5.3 顯示控件組(Display Widgets) 40 2.5.4 空間間隔組(Spacers) 41 2.5.5 布局管理組(Layouts) 41 2.5.6 容器組(Containers) 42 2.5.7 項目視圖組(Item Views) 44 2.5.8 項目控件組(Item Widgets) 46 2.5.9 小綜合例子 49 L2.1 字符串類QString:概念解析 52 L1 隱式共享 52 L2 內存分配策略 53 L2.5 Qt 5控件:概念解析 54 Qt::WindowFlags枚舉類型 54 第3章 Qt 5布局管理 56 3.1 分割窗口QSplitter類 56 3.2 停靠窗口QDockWidget類 58 3.3 堆棧窗體QStackedWidget類 61 3.4 基本布局(QLayout) 63 3.5 【綜合實例】(CH305):修改用戶資料 68 第4章 Qt 5基本對話框 78 4.1 標準文件對話框類 81 4.1.1 函數說明 81 4.1.2 創建步驟 82 4.2 標準顏色對話框類 83 4.2.1 函數說明 83 4.2.2 創建步驟 83 4.3 標準字體對話框類 84 4.3.1 函數說明 84 4.3.2 創建步驟 84 4.4 標準輸入對話框類 85 4.4.1 標準字符串輸入對話框 88 4.4.2 標準條目選擇對話框 89 4.4.3 標準int類型輸入對話框 89 4.4.4 標準double類型輸入對話框 90 4.5 消息對話框類 91 4.5.1 Question消息框 93 4.5.2 Information消息框 94 4.5.3 Warning消息框 95 4.5.4 Critical消息框 96 4.5.5 About消息框 96 4.5.6 About Qt消息框 97 4.6 自定義消息框 97 4.7 工具盒類 98 4.8 進度條 102 4.9 調色板與電子鐘 106 4.9.1 QPalette類 106 4.9.2 QTime類 112 4.9.3 【綜合實例】電子時鐘 112 4.10 可擴展對話框 115 4.11 不規則窗體 118 4.12 程序啟動畫面(QSplashScreen) 121 第5章 Qt 5主窗口 123 5.1 Qt 5主窗口構成 123 5.1.1 基本元素 123 5.1.2 【綜合實例】文本編輯器 124 5.1.3 菜單與工具欄的實現 127 5.2 Qt 5文件操作功能 132 5.2.1 新建文件 132 5.2.2 打開文件 132 5.2.3 打印文件 134 5.3 Qt 5圖像坐標變換 137 5.3.1 縮放功能 137 5.3.2 旋轉功能 138 5.3.3 鏡像功能 140 5.4 Qt 5文本編輯功能 141 5.4.1 設置字體 144 5.4.2 設置字號 144 5.4.3 設置文字加粗 144 5.4.4 設置文字斜體 145 5.4.5 設置文字加下畫線 145 5.4.6 設置文字顏色 145 5.4.7 設置字符格式 146 5.5 Qt 5排版功能 146 5.5.1 實現段落對齊 148 5.5.2 實現文本排序 148 第6章 Qt 5圖形與圖片 152 6.1 Qt 5位置相關函數 152 6.1.1 區別概述 152 6.1.2 【實例】位置函數的應用 153 6.2 Qt 5基礎圖形的繪制 156 6.2.1 繪圖框架設計 156 6.2.2 繪圖區的實現 157 6.2.3 主窗口的實現 161 6.3 Qt 5雙緩沖機制 173 6.3.1 原理與設計 173 6.3.2 繪圖區的實現 174 6.3.3 主窗口的實現 178 6.4 顯示Qt 5 SVG格式圖片 180 L6.4 Qt 5 SVG格式圖片顯示:概念解析 185 XML 185 第7章 Qt 5圖形視圖框架 187 7.1 圖形視圖體系結構 187 7.1.1 Graphics View框架結構的主要特點 187 7.1.2 Graphics View框架結構的三元素 187 7.1.3 GraphicsView框架結構的坐標系統 189 7.2 【實例】圖形視圖 190 7.2.1 飛舞的蝴蝶 190 7.2.2 地圖瀏覽器 194 7.2.3 圖元創建 198 7.2.4 圖元的旋轉、縮放、切變和位移 207 第8章 Qt 5模型/視圖結構 214 8.1 概述 214 8.1.1 基本概念 214 8.1.2 【實例】模型/視圖類使用 215 8.2 模型(Model) 217 8.3 視圖(View) 220 8.4 代理(Delegate) 232 第9章 Qt 5文件及磁盤處理 240 9.1 讀寫文本文件 240 9.1.1 使用QFile類讀寫文本 240 9.1.2 使用QTextStream類讀寫文本 241 9.2 讀寫二進制文件 243 9.3 目錄操作與文件系統 245 9.3.1 文件大小及路徑獲取實例 246 9.3.2 文件系統瀏覽 247 9.4 獲取文件信息 251 9.5 監視文件和目錄變化 255 第10章 Qt 5網絡與通信 257 10.1 獲取本機網絡信息 257 10.2 基于UDP的網絡廣播程序 260 10.2.1 UDP工作原理 260 10.2.2 UDP 編程模型 261 10.2.3 【實例】UDP服務器編程 261 10.2.4 【實例】UDP客戶端編程 264 10.3 基于TCP的網絡聊天室程序 266 10.3.1 TCP工作原理 267 10.3.2 TCP編程模型 267 10.3.3 【實例】TCP服務器端編程 267 10.3.4 【實例】TCP客戶端編程 273 10.4 Qt網絡應用開發初步 278 10.4.1 【實例】簡單網頁瀏覽器 279 10.4.2 文件下載實例 280 第11章 Qt 5事件處理及實例 283 11.1 鼠標事件及實例 283 11.2 鍵盤事件及實例 285 11.3 事件過濾及實例 291 第12章 Qt 5多線程 297 12.1 多線程及簡單實例 297 12.2 多線程控制 301 12.2.1 互斥量 301 12.2.2 信號量 302 12.2.3 線程等待與喚醒 305 12.3 多線程應用 309 12.3.1 【實例】服務器端編程 309 12.3.2 【實例】客戶端編程 313 第13章 Qt 5數據庫 318 13.1 數據庫基本概念 318 13.2 常用SQL命令 321 13.2.1 數據查詢 321 13.2.2 數據操作 324 13.3 Qt操作數據庫及實例 325 13.3.1 Qt操作SQLite數據庫 326 13.3.2 Qt操作主/從視圖及XML 332 第14章 Qt 5操作Office實例 359 14.1 Qt操作Office的基本方式 359 14.1.1 QAxObject對象訪問 359 14.1.2 AxWidget界面顯示 361 14.1.3 項目配置 362 14.2 Qt對Office的基本讀寫 363 14.2.1 程序界面 363 14.2.2 全局變量及方法 364 14.2.3 對Excel的讀寫 365 14.2.4 對Word的讀寫 367 14.3 Excel公式計算及顯示:統計高考錄取人數與錄取率 369 14.3.1 程序界面 369 14.3.2 全局變量及方法 370 14.3.3 功能實現 371 14.3.4 運行演示 373 14.4 Qt操作Word應用 375 14.4.1 讀取Word表格數據:中國歷年高考數據檢索 375 14.4.2 向文檔輸出表格:輸出近5年的高考信息統計表 378 第15章 Qt 5多國語言國際化 384 15.1 基本概念 384 15.1.1 國際化支持的實現 384 15.1.2 翻譯工作:“*.qm”文件的生成 385 15.2 【實例】語言國際化應用 385 15.2.1 簡單測試 385 15.2.2 選擇語言翻譯文字 389 第16章 Qt 5單元測試框架 394 16.1 QTestLib框架 394 16.2 簡單的Qt單元測試 394 16.3 數據驅動測試 398 16.4 簡單性能測試 401 第2部分 Qt綜合實例 第17章 【綜合實例】電子商城系統 403 17.1 商品管理系統功能需求 403 17.1.1 登錄功能 403 17.1.2 新品入庫功能 404 17.1.3 預售訂單功能 404 17.2 項目開發準備 405 17.2.1 項目配置 405 17.2.2 數據庫準備 407 17.3 商品管理系統界面設計 411 17.3.1 總體設計 411 17.3.2 “新品入庫”頁 412 17.3.3 “預售訂單”頁 413 17.3.4 登錄窗口 414 17.4 商品管理系統功能實現 417 17.4.1 登錄功能實現 417 17.4.2 主體程序框架 419 17.4.3 界面初始化功能實現 424 17.4.4 新品入庫功能實現 427 17.4.5 預售訂單功能實現 429 17.5 商品管理系統運行演示 431 17.5.1 登錄電子商城 431 17.5.2 新品入庫和清倉 432 17.5.3 預售下訂單 432 第18章 【綜合實例】MyWord字處理軟件 434 18.1 核心功能界面演示 434 18.2 界面設計與開發 435 18.2.1 菜單系統設計 435 18.2.2 工具欄設計 443 18.2.3 建立MDI程序框架 446 18.2.4 子窗口管理 449 18.2.5 界面生成試運行 456 18.3 基本編輯功能實現 456 18.3.1 打開文檔 456 18.3.2 保存文檔 459 18.3.3 文檔操作 462 18.4 文檔排版美化功能實現 464 18.4.1 字體格式設置 464 18.4.2 段落對齊設置 467 18.4.3 顏色設置 469 18.4.4 段落標號、編號 470 18.4.5 文檔打印與預覽 473 第19章 【綜合實例】微信客戶端程序 476 19.1 界面設計與開發 476 19.1.1 核心功能界面演示 476 19.1.2 登錄對話框設計 479 19.1.3 聊天窗口設計 480 19.1.4 文件傳輸服務器界面設計 482 19.1.5 文件傳輸客戶端界面設計 483 19.2 登錄功能實現 483 19.3 基本聊天會話功能實現 486 19.3.1 基本原理 487 19.3.2 消息類型與UDP廣播 487 19.3.3 會話過程的處理 492 19.3.4 聊天程序試運行 494 19.4 文件傳輸功能實現 494 19.4.1 基本原理 494 19.4.2 服務器開發 495 19.4.3 客戶端開發 500 19.4.4 主界面的控制 503 19.4.5 文件傳輸試驗 506 第3部分 Qt擴展應用:OpenCV 第20章 Qt 5.11.1+OpenCV(含Contrib)-3.4.3環境搭建 509 20.1 安裝CMake 509 20.2 添加系統環境變量 510 20.3 下載OpenCV 510 20.4 下載Contrib 511 20.5 編譯前準備 512 20.6 編譯配置 515 20.7 開始編譯 519 20.8 安裝OpenCV庫 520 第21章 OpenCV圖片處理 522 21.1 圖片美化 523 21.1.1 圖片增強 523 21.1.2 平滑濾波 529 21.2 多圖合成 535 21.2.1 程序界面 536 21.2.2 全局變量及方法 537 21.2.3 初始化顯示 537 21.2.4 功能實現 538 21.2.5 運行效果 539 21.3 圖片旋轉縮放 540 21.3.1 程序界面 540 21.3.2 全局變量及方法 541 21.3.3 初始化顯示 542 21.3.4 功能實現 543 21.3.5 運行效果 544 21.4 圖片智能識別 545 21.4.1 尋找匹配物體 545 21.4.2 人臉識別 550 第22章 【綜合實例】醫院遠程診斷系統 555 22.1 遠程診斷系統功能需求 555 22.1.1 診療點科室管理 555 22.1.2 CT影像顯示和處理 556 22.1.3 患者信息選項卡 556 22.1.4 后臺數據庫瀏覽 556 22.1.5 界面的總體效果 557 22.2 Qt項目工程創建與配置 557 22.3 遠程診療系統界面設計 560 22.4 遠程診療系統功能實現 563 22.4.1 數據庫準備 563 22.4.2 Qt應用程序主體框架 565 22.4.3 界面初始化功能實現 570 22.4.4 診斷功能實現 572 22.4.5 患者信息表單 574 22.5 遠程診療系統運行演示 576 22.5.1 啟動、連接數據庫 576 22.5.2 執行診斷分析 577 22.5.3 表單信息聯動 579 22.5.4 查看病歷 579 第4部分 QML和Qt Quick及其應用 第23章 QML編程基礎 580 23.1 QML概述 580 23.1.1 第一個QML程序 581 23.1.2 QML文檔構成 584 23.1.3 QML基本語法 584 23.2 QML可視元素 587 23.2.1 Rectangle(矩形)元素 587 23.2.2 Image(圖像)元素 589 23.2.3 Text(文本)元素 590 23.2.4 自定義元素(組件) 592 23.3 QML元素布局 594 23.3.1 Positioner(定位器) 594 23.3.2 Anchor(錨) 598 23.4 QML事件處理 602 23.4.1 鼠標事件 602 23.4.2 鍵盤事件 604 23.4.3 輸入控件與焦點 606 23.5 QML集成JavaScript 609 23.5.1 調用JavaScript函數 609 23.5.2 導入JS文件 610 第24章 QML動畫特效 613 24.1 QML動畫元素 613 24.1.1 PropertyAnimation元素 613 24.1.2 其他動畫元素 618 24.1.3 Animator元素 620 24.2 動畫流UI界面 621 24.2.1 狀態和切換 622 24.2.2 設計組合動畫 625 24.3 圖像特效 627 24.3.1 3D旋轉 627 24.3.2 色彩處理 629 24.4 Qt 5.5(Qt Quick Extras 1.4)新增餅狀菜單 631 第25章 Qt Quick Controls開發基礎 634 25.1 Qt Quick Controls概述 634 25.1.1 第一個Qt Quick Controls程序 634 25.1.2 Qt Quick窗體應用程序的構成 636 25.2 Qt Quick控件 640 25.2.1 概述 640 25.2.2 基本控件 641 25.2.3 高級控件 646 25.2.4 樣式定制 650 25.3 Qt Quick對話框 657 25.4 Qt Quick導航視圖 662 25.5 Qt 5.5(Qt Quick Controls 1.4)新增組件 667 第26章 Qt Quick Controls 2新穎界面開發 671 26.1 Qt Quick Controls 2簡介 671 26.1.1 第一個Qt Quick Controls 2程序 672 26.1.2 Qt Quick Controls 2程序的構成 675 26.2 Qt Quick Controls 2與Qt Quick Controls 1的比較 678 26.2.1 ApplicationWindow結構不同 678 26.2.2 Menu不支持窗口主菜單 681 26.2.3 控件實現差異 683 26.3 滑動翻頁及隱藏面板 688 26.4 選項列表 693 26.5 帶功能按鈕的列表 696 第27章 【綜合實例】多功能文檔查看器 702 27.1 核心功能界面演示 702 27.2 界面與程序框架設計 703 27.2.1 準備應用資源 704 27.2.2 主程序代碼框架 705 27.3 瀏覽網頁功能實現 712 27.3.1 實現HtmlHandler處理器 712 27.3.2 編寫Action 716 27.3.3 定義主顯示區元素 716 27.3.4 實現“打開網頁”對話框 716 27.4 閱讀文本功能實現 717 27.4.1 實現TextHandler處理器 718 27.4.2 編寫Action 721 27.4.3 定義主顯示區元素 722 27.4.4 實現“打開文本”對話框 722 27.5 查看圖片功能實現 723 27.5.1 編寫Action 723 27.5.2 定義主顯示區元素 725 27.5.3 實現“打開圖片”對話框 725 27.5.4 對圖片的處理 726 第5部分 附 錄 附錄A C++相關知識 727 A.1 C++程序結構 727 A.2 C++預處理命令 728 A.3 C++異常處理 730 A.4 C++面向對象編程 732 附錄B Qt 5簡單調試 741 B.1 修正語法錯誤 741 B.2 設置斷點 742 B.3 程序調試運行 742 B.4 查看和修改變量的值 743 B.5 qDebug()的用法 745 |
序: |