Qt 5/PyQt 5實戰指南——手把手教你掌握100個精彩案例
內容描述
《Qt 5/PyQt 5實戰指南——手把手教你掌握100個精彩案例》根據跨平臺軟件研發工作中對Qt技術的需求,按照循序漸進的原則逐步介紹Qt的各種實用技術。本書分為3部分: 第1部分(第1~14章)講述C+ + 版的Qt知識,著重介紹Qt的安裝配置以及開發環境搭建、Qt項目文件的配置與使用、Qt常用類與常用控件的應用、使用Qt Designer繪制窗體與控件、庫的開發與使用、插件開發技術、Qt的MVC機制及應用、SDI與MDI類應用開發技術、Qt多線程應用開發及並發框架、Qt網絡應用程序開發技術; 第2部分(第15~22章)講述PyQt版的開發知識,內容同第一部分大體一致,用Python語言實現並根據Python語言特點省去了部分內容; 第3部分(第23、24章)分別以C++ 語言、Python語言的實戰項目為例,講解Qt技術的綜合應用。全書提供了100個應用案例,除第1、23、24章外,每章後均附有配套練習。 《Qt 5/PyQt 5實戰指南——手把手教你掌握100個精彩案例》適合作為C++/Python跨平臺軟件研發工作人員的參考資料,也可作為高等院校電腦、軟件工程等相關專業高年級本科生、研究生的參考教材。
目錄大綱
目錄
第1章準備工作
1.1推薦的開發環境
1.2安裝Visual Studio 2017
1.3安裝Python
1.4安裝LLVM
1.5用編譯的方式安裝Qt 5.11.1
1.6用安裝包安裝Qt 5.11.1
1.7在Linux上編譯代碼出錯時的處理
1.8配套源代碼
第2章pro與pri
2.1案例1通過一個簡單的EXE來介紹pro的基本配置
2.2案例2整理一下目錄吧
2.3案例3加點料——增加一張圖片
2.4知識點pro文件常用配置
2.5知識點pri文件有什麽用
2.6知識點一勞永逸,引入pri體系
2.7案例4還是不知道pri怎麽用?來練練手吧
2.8配套練習
第3章多國語言國際化
3.1案例5怎樣實現國際化
3.2知識點幾種常見的國際化編程場景
3.3知識點中英文翻譯失敗如何處理
3.4配套練習
第4章打基礎
4.1案例6開發一個DLL
4.2知識點使用命名空間
4.3案例7QString的6個實用案例
4.4案例8用qDebug()輸出信息
4.5案例9使用QVector處理數組
4.6案例10使用QList處理鏈表
4.7案例11使用QMap建立映射
4.8案例12萬能的QVariant
4.9案例13使用QMessagebox彈出各種等級的提示信息
4.10案例14使用QInputDialog獲取多種類型的用戶輸入
4.11知識點開發自己的公共類庫
4.12案例15普通文本文件讀寫
4.13案例16XML格式的配置文件
4.14知識點INI格式的配置文件
4.15案例17把類對象序列化到二進制文件
4.16案例18從二進制文件反序列化類對象
4.17案例19類的XML格式序列化
4.18知識點類的二進制格式序列化——向後兼容
4.19案例20使用流方式讀寫XML
4.20知識點使用單體模式實現全局配置
4.21案例21讀取GB 13000編碼的身份證信息
4.22配套練習
第5章對話框
5.1知識點Qt Designer的使用
5.2知識點在Designer中進行界面佈局
5.3案例22對話框——走起
5.4案例23三種編程方式實現信號槽開發
5.5案例24自定義signal與信號轉發
5.6案例25disconnect的用途
5.7知識點消息阻塞防止額外觸發槽函數
5.8案例26信號槽只能用在對話框里嗎
5.9案例27對象之間還能怎麽傳遞消息
5.10知識點編程實現控件嵌套佈局
5.11知識點樣式
5.12案例28使用QStackedLayout實現向導界面
5.13案例29定時器1
5.14案例30定時器2
5.15配套練習
第6章常用控件
6.1案例31使用QLabel顯示文本或圖片
6.2案例32使用QLineEdit獲取多種輸入
6.3案例33使用QComboBox獲取用戶輸入
6.4案例34使用QListWidget展示數據列表
6.5案例35使用QSlider控制進度
6.6配套練習
第7章用QPainter實現自定義繪制
7.1知識點怎樣進行自定義繪制
7.2案例36萌新機器人
7.3案例37機器人的新裝
7.4配套練習
第8章模型視圖代理
8.1知識點Qt的MVC簡介
8.2知識點使用QStandardItemModel構建樹模型
8.3案例38使用代理實現屬性窗
8.4案例39帶子屬性的屬性窗
8.5配套練習
第9章開發SDI應用
9.1案例40開發一個SDI應用
9.2案例41使用自定義視圖
9.3案例42添加主菜單
9.4案例43常規工具條
9.5知識點在狀態欄上顯示鼠標坐標
9.6知識點使用QSplashScreen為程序添加啟動畫面
9.7知識點工具條反顯
9.8案例44打開文件對話框
9.9案例45浮動窗里的列表框
9.10案例46拖放
9.11案例47使用樹視圖做個工具箱
9.12案例48使用事項窗展示事項或日誌
9.13案例49剪切、復制、粘貼
9.14案例50上下文菜單
9.15案例51利用屬性機制實現動畫彈出菜單
9.16知識點main()函數一般都寫什麽
9.17配套練習
第10章開發MDI應用
10.1案例52MDI——採用同一類型的View
10.2知識點MDI——採用不同類型的View
10.3配套練習
第11章重寫Qt事件
11.1知識點QWidget事件簡介
11.2案例53通過重寫鼠標事件實現圖元移動
11.3案例54通過重寫鍵盤事件實現圖元移動
11.4知識點無法切換到中文輸入時該怎麽辦
11.5配套練習
第12章開發插件
12.1知識點什麽是插件,插件用來乾什麽
12.2案例55怎樣開發插件
12.3配套練習
第13章開發多線程應用
13.1案例56多線程和互斥鎖
13.2知識點多線程應用中如何與主界面通信
13.3案例57使用QtConcurrent處理並發——Map模式
13.4案例58使用QtConcurrent處理並發——MapReduce模式
13.5配套練習
第14章開發網絡應用
14.1案例59基於Qt的TCP/IP編程
14.2案例60TCP/IP多客戶端編程
14.3配套練習
第15章PyQt 5基礎
15.1知識點PyQt 5簡介
15.2知識點搭建PyQt 5開發環境
15.3案例61編寫第一個PyQt 5程序
15.4案例62給應用加上圖片
15.5案例63信號槽初探——窗口A調用窗口B
15.6案例64編寫代碼實現控件佈局
15.7案例65在窗體A中嵌入自定義控件B
15.8案例66使用QLabel顯示GIF動畫
15.9案例67使用QLineEdit獲取多種輸入
15.10案例68使用QComboBox獲取用戶輸入
15.11案例69使用QListWidget展示並操作列表
15.12案例70使用QSlider控制進度
15.13案例71使用QMessageBox彈出提示信息
15.14案例72使用QInputDialog獲取用戶輸入
15.15案例73使用QFileDialog獲取用戶選擇的文件名
15.16知識點把程序最小化到系統托盤
15.17配套練習
第16章PyQt 5進程內通信
16.1知識點PyQt 5中的信號槽
16.2案例74使用自定義信號
16.3案例75帶參數的自定義信號
16.4知識點信號比槽的參數少該怎麽辦
16.5案例76使用QTimer實現定時器
16.6知識點使用timerEvent()實現定時器
16.7案例77使用QStackedLayout實現向導界面
16.8配套練習
第17章PyQt 5實現自定義繪制
17.1知識點怎樣進行自定義繪制
17.2案例78萌新機器人
17.3案例79機器人的新裝
17.4配套練習
第18章PyQt 5中的模型視圖代理
18.1知識點使用QStandardItemModel構建樹模型
18.2案例80最簡單的屬性窗
18.3案例81使用代理實現屬性窗
18.4案例82自定義屬性窗
18.5案例83帶子屬性的屬性窗
18.6配套練習
第19章PyQt 5開發SDI應用
19.1案例84開發一個SDI應用
19.2案例85使用自定義視圖
19.3案例86添加主菜單
19.4案例87常規工具條
19.5案例88在狀態欄上顯示鼠標坐標
19.6知識點使用QSplashScreen為程序添加啟動畫面
19.7知識點工具條反顯
19.8案例89浮動窗里的列表框
19.9案例90拖放
19.10案例91使用樹視圖做個工具箱
19.11案例92使用事項窗展示事項或日誌
19.12案例93剪切、復制、粘貼
19.13案例94上下文菜單
19.14配套練習
第20章PyQt 5開發MDI應用
20.1案例95MDI——採用同一類型的View
20.2知識點MDI——採用不同類型的View
20.3配套練習
第21章PyQt 5事件
21.1案例96通過重寫鼠標事件實現圖元移動
21.2案例97通過重寫鍵盤事件實現圖元移動
21.3配套練習
第22章PyQt 5開發多線程應用
22.1案例98多線程和互斥鎖
22.2知識點多線程應用中如何刷新主界面
22.3配套練習
第23章項目實戰——敏捷看板(C++版)
23.1知識點項目實戰準備——訪問SQLite數據庫
23.2知識點項目實戰準備——使用QCustomPlot繪制曲線
23.3案例99項目實戰——敏捷看板
第24章項目實戰——敏捷看板(PyQt版)
24.1知識點項目實戰準備——訪問SQLite數據庫
24.2知識點項目實戰準備——用Matplotlib繪制曲線
24.3案例100項目實戰——敏捷看板
附錄APyQt 5常用類所在模塊
參考文獻
作者介紹
白振勇2000年畢業於山東工業大學,20年來一直從事跨平台監控系統的設計、研發工作;曾因iES-DMS1000 Extreme配電自動化主站系統榮獲山東省科技進步二等獎,獲得3項國家發明專利;帶領團隊利用Qt 5開發的圖形平台已成為公司主營產品的核心支撐組件。