Qt 5開發(fā)及實例(第4版)(含典型案例視頻分析)
定 價:129 元
- 作者:陸文周
- 出版時間:2019/3/1
- ISBN:9787121361579
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:764
- 紙張:
- 版次:01
- 開本:16開
Qt是軟件開發(fā)領(lǐng)域中非常著名的C++可視化開發(fā)平臺。本書以Qt 5.11為平臺,介紹Qt和QML編程及其應(yīng)用開發(fā)。全書分為5個部分。第1部分為Qt基礎(chǔ),在上一版的基礎(chǔ)上增加了Qt操作表格處理軟件Excel數(shù)據(jù)和字處理軟件Word數(shù)據(jù)的內(nèi)容。第2部分為Qt綜合實例,重新設(shè)計了電子商城系統(tǒng)、MyWord字處理軟件、微信客戶端程序。第3部分為Qt擴展應(yīng)用OpenCV,首先配置OpenCV-3.4.3,然后介紹典型圖片處理。第4部分為QML和Qt Quick及其應(yīng)用,介紹了QML及Qt Quick相關(guān)內(nèi)容,【綜合實例】為多功能文檔查看器。第5部分為附錄,介紹了C++相關(guān)知識和Qt 5簡單調(diào)試。本書提供配套的視頻,分析典型案例,通過掃描二維碼播放。為了方便讀者上機練習(xí),書中實例提供源代碼,其編號為CH×××。源代碼及其工程文件可從華信教育資源網(wǎng)(http://www.hxedu.com.cn)免費下載。本書既可作為Qt 的學(xué)習(xí)和參考用書,也可作為大學(xué)教材或Qt 5培訓(xùn)用書。
陸文周,高級工程師,畢業(yè)于東南大學(xué)。早年任職于東南大學(xué)機械系,從事工程材料、機械制造基礎(chǔ)、微機原理、機械設(shè)計等課程教學(xué)與數(shù)控機床設(shè)計,后到蘇州工業(yè)園區(qū)多家企業(yè)任職。2008年至今,任職于上海恒動新能源有限公司。
目 錄
第1部分 Qt 基 礎(chǔ)
第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開發(fā)環(huán)境 7
1.3 Qt 5開發(fā)步驟及實例 8
1.3.1 設(shè)計器Qt Designer實現(xiàn) 9
1.3.2 代碼實現(xiàn)簡單實例 15
1.3.3 Qt低版本實例遷移 18
L1.2 Qt 5的安裝:概念解析 19
伙伴編輯模式(Edit Buddies) 19
L1.3 Qt 5開發(fā)步驟及實例:概念解析 19
L1 信號和槽機制(Signal & Slot) 19
L2 Qt 5元對象系統(tǒng) 21
L3 布局管理器 21
第2章 Qt 5模板庫、工具類及控件 22
2.1 字符串類 22
2.1.1 操作字符串 22
2.1.2 查詢字符串?dāng)?shù)據(jù) 23
2.1.3 字符串的轉(zhuǎn)換 24
2.2 容器類 25
2.2.1 QList類、QLinkedList類和QVector類 26
2.2.2 QMap類和QHash類 31
2.3 QVariant類 33
2.4 算法及正則表達(dá)式 36
2.4.1 Qt 5常用算法 36
2.4.2 基本的正則表達(dá)式 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 內(nèi)存分配策略 53
L2.5 Qt 5控件:概念解析 54
Qt::WindowFlags枚舉類型 54
第3章 Qt 5布局管理 56
3.1 分割窗口QSplitter類 56
3.2 ?看翱赒DockWidget類 58
3.3 堆棧窗體QStackedWidget類 61
3.4 基本布局(QLayout) 63
3.5 【綜合實例】(CH305):修改用戶資料 68
第4章 Qt 5基本對話框 78
4.1 標(biāo)準(zhǔn)文件對話框類 81
4.1.1 函數(shù)說明 81
4.1.2 創(chuàng)建步驟 82
4.2 標(biāo)準(zhǔn)顏色對話框類 83
4.2.1 函數(shù)說明 83
4.2.2 創(chuàng)建步驟 83
4.3 標(biāo)準(zhǔn)字體對話框類 84
4.3.1 函數(shù)說明 84
4.3.2 創(chuàng)建步驟 84
4.4 標(biāo)準(zhǔn)輸入對話框類 85
4.4.1 標(biāo)準(zhǔn)字符串輸入對話框 88
4.4.2 標(biāo)準(zhǔn)條目選擇對話框 89
4.4.3 標(biāo)準(zhǔn)int類型輸入對話框 89
4.4.4 標(biāo)準(zhǔn)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 進(jìn)度條 102
4.9 調(diào)色板與電子鐘 106
4.9.1 QPalette類 106
4.9.2 QTime類 112
4.9.3 【綜合實例】電子時鐘 112
4.10 可擴展對話框 115
4.11 不規(guī)則窗體 118
4.12 程序啟動畫面(QSplashScreen) 121
第5章 Qt 5主窗口 123
5.1 Qt 5主窗口構(gòu)成 123
5.1.1 基本元素 123
5.1.2 【綜合實例】文本編輯器 124
5.1.3 菜單與工具欄的實現(xiàn) 127
5.2 Qt 5文件操作功能 132
5.2.1 新建文件 132
5.2.2 打開文件 132
5.2.3 打印文件 134
5.3 Qt 5圖像坐標(biāo)變換 137
5.3.1 縮放功能 137
5.3.2 旋轉(zhuǎn)功能 138
5.3.3 鏡像功能 140
5.4 Qt 5文本編輯功能 141
5.4.1 設(shè)置字體 144
5.4.2 設(shè)置字號 144
5.4.3 設(shè)置文字加粗 144
5.4.4 設(shè)置文字斜體 145
5.4.5 設(shè)置文字加下畫線 145
5.4.6 設(shè)置文字顏色 145
5.4.7 設(shè)置字符格式 146
5.5 Qt 5排版功能 146
5.5.1 實現(xiàn)段落對齊 148
5.5.2 實現(xiàn)文本排序 148
第6章 Qt 5圖形與圖片 152
6.1 Qt 5位置相關(guān)函數(shù) 152
6.1.1 區(qū)別概述 152
6.1.2 【實例】位置函數(shù)的應(yīng)用 153
6.2 Qt 5基礎(chǔ)圖形的繪制 156
6.2.1 繪圖框架設(shè)計 156
6.2.2 繪圖區(qū)的實現(xiàn) 157
6.2.3 主窗口的實現(xiàn) 161
6.3 Qt 5雙緩沖機制 173
6.3.1 原理與設(shè)計 173
6.3.2 繪圖區(qū)的實現(xiàn) 174
6.3.3 主窗口的實現(xiàn) 178
6.4 顯示Qt 5 SVG格式圖片 180
L6.4 Qt 5 SVG格式圖片顯示:概念解析 185
XML 185
第7章 Qt 5圖形視圖框架 187
7.1 圖形視圖體系結(jié)構(gòu) 187
7.1.1 Graphics View框架結(jié)構(gòu)的主要特點 187
7.1.2 Graphics View框架結(jié)構(gòu)的三元素 187
7.1.3 GraphicsView框架結(jié)構(gòu)的坐標(biāo)系統(tǒng) 189
7.2 【實例】圖形視圖 190
7.2.1 飛舞的蝴蝶 190
7.2.2 地圖瀏覽器 194
7.2.3 圖元創(chuàng)建 198
7.2.4 圖元的旋轉(zhuǎn)、縮放、切變和位移 207
第8章 Qt 5模型/視圖結(jié)構(gòu) 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 讀寫二進(jìn)制文件 243
9.3 目錄操作與文件系統(tǒng) 245
9.3.1 文件大小及路徑獲取實例 246
9.3.2 文件系統(tǒng)瀏覽 247
9.4 獲取文件信息 251
9.5 監(jiān)視文件和目錄變化 255
第10章 Qt 5網(wǎng)絡(luò)與通信 257
10.1 獲取本機網(wǎng)絡(luò)信息 257
10.2 基于UDP的網(wǎng)絡(luò)廣播程序 260
10.2.1 UDP工作原理 260
10.2.2 UDP 編程模型 261
10.2.3 【實例】UDP服務(wù)器編程 261
10.2.4 【實例】UDP客戶端編程 264
10.3 基于TCP的網(wǎng)絡(luò)聊天室程序 266
10.3.1 TCP工作原理 267
10.3.2 TCP編程模型 267
10.3.3 【實例】TCP服務(wù)器端編程 267
10.3.4 【實例】TCP客戶端編程 273
10.4 Qt網(wǎng)絡(luò)應(yīng)用開發(fā)初步 278
10.4.1 【實例】簡單網(wǎng)頁瀏覽器 279
10.4.2 文件下載實例 280
第11章 Qt 5事件處理及實例 283
11.1 鼠標(biāo)事件及實例 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 多線程應(yīng)用 309
12.3.1 【實例】服務(wù)器端編程 309
12.3.2 【實例】客戶端編程 313
第13章 Qt 5數(shù)據(jù)庫 318
13.1 數(shù)據(jù)庫基本概念 318
13.2 常用SQL命令 321
13.2.1 數(shù)據(jù)查詢 321
13.2.2 數(shù)據(jù)操作 324
13.3 Qt操作數(shù)據(jù)庫及實例 325
13.3.1 Qt操作SQLite數(shù)據(jù)庫 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公式計算及顯示:統(tǒng)計高考錄取人數(shù)與錄取率 369
14.3.1 程序界面 369
14.3.2 全局變量及方法 370
14.3.3 功能實現(xiàn) 371
14.3.4 運行演示 373
14.4 Qt操作Word應(yīng)用 375
14.4.1 讀取Word表格數(shù)據(jù):中國歷年高考數(shù)據(jù)檢索 375
14.4.2 向文檔輸出表格:輸出近5年的高考信息統(tǒng)計表 378
第15章 Qt 5多國語言國際化 384
15.1 基本概念 384
15.1.1 國際化支持的實現(xiàn) 384
15.1.2 翻譯工作:“*.qm”文件的生成 385
15.2 【實例】語言國際化應(yīng)用 385
15.2.1 簡單測試 385
15.2.2 選擇語言翻譯文字 389
第16章 Qt 5單元測試框架 394
16.1 QTestLib框架 394
16.2 簡單的Qt單元測試 394
16.3 數(shù)據(jù)驅(qū)動測試 398
16.4 簡單性能測試 401
第2部分 Qt綜合實例
第17章 【綜合實例】電子商城系統(tǒng) 403
17.1 商品管理系統(tǒng)功能需求 403
17.1.1 登錄功能 403
17.1.2 新品入庫功能 404
17.1.3 預(yù)售訂單功能 404
17.2 項目開發(fā)準(zhǔn)備 405
17.2.1 項目配置 405
17.2.2 數(shù)據(jù)庫準(zhǔn)備 407
17.3 商品管理系統(tǒng)界面設(shè)計 411
17.3.1 總體設(shè)計 411
17.3.2 “新品入庫”頁 412
17.3.3 “預(yù)售訂單”頁 413
17.3.4 登錄窗口 414
17.4 商品管理系統(tǒng)功能實現(xiàn) 417
17.4.1 登錄功能實現(xiàn) 417
17.4.2 主體程序框架 419
17.4.3 界面初始化功能實現(xiàn) 424
17.4.4 新品入庫功能實現(xiàn) 427
17.4.5 預(yù)售訂單功能實現(xiàn) 429
17.5 商品管理系統(tǒng)運行演示 431
17.5.1 登錄電子商城 431
17.5.2 新品入庫和清倉 432
17.5.3 預(yù)售下訂單 432
第18章 【綜合實例】MyWord字處理軟件 434
18.1 核心功能界面演示 434
18.2 界面設(shè)計與開發(fā) 435
18.2.1 菜單系統(tǒng)設(shè)計 435
18.2.2 工具欄設(shè)計 443
18.2.3 建立MDI程序框架 446
18.2.4 子窗口管理 449
18.2.5 界面生成試運行 456
18.3 基本編輯功能實現(xiàn) 456
18.3.1 打開文檔 456
18.3.2 保存文檔 459
18.3.3 文檔操作 462
18.4 文檔排版美化功能實現(xiàn) 464
18.4.1 字體格式設(shè)置 464
18.4.2 段落對齊設(shè)置 467
18.4.3 顏色設(shè)置 469
18.4.4 段落標(biāo)號、編號 470
18.4.5 文檔打印與預(yù)覽 473
第19章 【綜合實例】微信客戶端程序 476
19.1 界面設(shè)計與開發(fā) 476
19.1.1 核心功能界面演示 476
19.1.2 登錄對話框設(shè)計 479
19.1.3 聊天窗口設(shè)計 480
19.1.4 文件傳輸服務(wù)器界面設(shè)計 482
19.1.5 文件傳輸客戶端界面設(shè)計 483
19.2 登錄功能實現(xiàn) 483
19.3 基本聊天會話功能實現(xiàn) 486
19.3.1 基本原理 487
19.3.2 消息類型與UDP廣播 487
19.3.3 會話過程的處理 492
19.3.4 聊天程序試運行 494
19.4 文件傳輸功能實現(xiàn) 494
19.4.1 基本原理 494
19.4.2 服務(wù)器開發(fā) 495
19.4.3 客戶端開發(fā) 500
19.4.4 主界面的控制 503
19.4.5 文件傳輸試驗 506
第3部分 Qt擴展應(yīng)用:OpenCV
第20章 Qt 5.11.1+OpenCV(含Contrib)-3.4.3環(huán)境搭建 509
20.1 安裝CMake 509
20.2 添加系統(tǒng)環(huán)境變量 510
20.3 下載OpenCV 510
20.4 下載Contrib 511
20.5 編譯前準(zhǔn)備 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 功能實現(xiàn) 538
21.2.5 運行效果 539
21.3 圖片旋轉(zhuǎn)縮放 540
21.3.1 程序界面 540
21.3.2 全局變量及方法 541
21.3.3 初始化顯示 542
21.3.4 功能實現(xiàn) 543
21.3.5 運行效果 544
21.4 圖片智能識別 545
21.4.1 尋找匹配物體 545
21.4.2 人臉識別 550
第22章 【綜合實例】醫(yī)院遠(yuǎn)程診斷系統(tǒng) 555
22.1 遠(yuǎn)程診斷系統(tǒng)功能需求 555
22.1.1 診療點科室管理 555
22.1.2 CT影像顯示和處理 556
22.1.3 患者信息選項卡 556
22.1.4 后臺數(shù)據(jù)庫瀏覽 556
22.1.5 界面的總體效果 557
22.2 Qt項目工程創(chuàng)建與配置 557
22.3 遠(yuǎn)程診療系統(tǒng)界面設(shè)計 560
22.4 遠(yuǎn)程診療系統(tǒng)功能實現(xiàn) 563
22.4.1 數(shù)據(jù)庫準(zhǔn)備 563
22.4.2 Qt應(yīng)用程序主體框架 565
22.4.3 界面初始化功能實現(xiàn) 570
22.4.4 診斷功能實現(xiàn) 572
22.4.5 患者信息表單 574
22.5 遠(yuǎn)程診療系統(tǒng)運行演示 576
22.5.1 啟動、連接數(shù)據(jù)庫 576
22.5.2 執(zhí)行診斷分析 577
22.5.3 表單信息聯(lián)動 579
22.5.4 查看病歷 579
第4部分 QML和Qt Quick及其應(yīng)用
第23章 QML編程基礎(chǔ) 580
23.1 QML概述 580
23.1.1 第一個QML程序 581
23.1.2 QML文檔構(gòu)成 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 鼠標(biāo)事件 602
23.4.2 鍵盤事件 604
23.4.3 輸入控件與焦點 606
23.5 QML集成JavaScript 609
23.5.1 調(diào)用JavaScript函數(shù) 609
23.5.2 導(dǎo)入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 狀態(tài)和切換 622
24.2.2 設(shè)計組合動畫 625
24.3 圖像特效 627
24.3.1 3D旋轉(zhuǎn) 627
24.3.2 色彩處理 629
24.4 Qt 5.5(Qt Quick Extras 1.4)新增餅狀菜單 631
第25章 Qt Quick Controls開發(fā)基礎(chǔ) 634
25.1 Qt Quick Controls概述 634
25.1.1 第一個Qt Quick Controls程序 634
25.1.2 Qt Quick窗體應(yīng)用程序的構(gòu)成 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導(dǎo)航視圖 662
25.5 Qt 5.5(Qt Quick Controls 1.4)新增組件 667
第26章 Qt Quick Controls 2新穎界面開發(fā) 671
26.1 Qt Quick Controls 2簡介 671
26.1.1 第一個Qt Quick Controls 2程序 672
26.1.2 Qt Quick Controls 2程序的構(gòu)成 675
26.2 Qt Quick Controls 2與Qt Quick Controls 1的比較 678
26.2.1 ApplicationWindow結(jié)構(gòu)不同 678
26.2.2 Menu不支持窗口主菜單 681
26.2.3 控件實現(xiàn)差異 683
26.3 滑動翻頁及隱藏面板 688
26.4 選項列表 693
26.5 帶功能按鈕的列表 696
第27章 【綜合實例】多功能文檔查看器 702
27.1 核心功能界面演示 702
27.2 界面與程序框架設(shè)計 703
27.2.1 準(zhǔn)備應(yīng)用資源 704
27.2.2 主程序代碼框架 705
27.3 瀏覽網(wǎng)頁功能實現(xiàn) 712
27.3.1 實現(xiàn)HtmlHandler處理器 712
27.3.2 編寫Action 716
27.3.3 定義主顯示區(qū)元素 716
27.3.4 實現(xiàn)“打開網(wǎng)頁”對話框 716
27.4 閱讀文本功能實現(xiàn) 717
27.4.1 實現(xiàn)TextHandler處理器 718
27.4.2 編寫Action 721
27.4.3 定義主顯示區(qū)元素 722
27.4.4 實現(xiàn)“打開文本”對話框 722
27.5 查看圖片功能實現(xiàn) 723
27.5.1 編寫Action 723
27.5.2 定義主顯示區(qū)元素 725
27.5.3 實現(xiàn)“打開圖片”對話框 725
27.5.4 對圖片的處理 726
第5部分 附 錄
附錄A C++相關(guān)知識 727
A.1 C++程序結(jié)構(gòu) 727
A.2 C++預(yù)處理命令 728
A.3 C++異常處理 730
A.4 C++面向?qū)ο缶幊?732
附錄B Qt 5簡單調(diào)試 741
B.1 修正語法錯誤 741
B.2 設(shè)置斷點 742
B.3 程序調(diào)試運行 742
B.4 查看和修改變量的值 743
B.5 qDebug()的用法 745