第1章 引 言…………………………………………………………………………………… 1
1.1 Qt框架的特色…………………………………………………………………………… 1
1.1.1 跨平颱……………………………………………………………………………… 1
1.1.2 藝術級圖形界麵設計……………………………………………………………… 3
1.1.3 抽象化核心模塊設計……………………………………………………………… 3
1.1.4 環境準備…………………………………………………………………………… 3
1.2 本書的特色……………………………………………………………………………… 5
1.2.1 完整準確的參考…………………………………………………………………… 6
1.2.2 係統深入的說明…………………………………………………………………… 6
1.2.3 實例演示:遠程傳輸與控製係統…………………………………………………… 7
1.3 遠程傳輸與控製係統的結構…………………………………………………………… 7
1.3.1 總體結構…………………………………………………………………………… 7
1.3.2 軟件層……………………………………………………………………………… 7
1.3.3 硬件層……………………………………………………………………………… 9
1.3.4 網絡層……………………………………………………………………………… 9
1.3.5 跨語言通信層……………………………………………………………………… 9
1.3.6 數據層……………………………………………………………………………… 10
1.3.7 遠端控製層………………………………………………………………………… 10
1.3.8 打包與發布………………………………………………………………………… 10
第2章 軟件層係統功能模塊…………………………………………………………… 11
2.1 Qt項目………………………………………………………………………………… 11
2.1.1 Qt工程…………………………………………………………………………… 11
2.1.2 PRO文件………………………………………………………………………… 12
2.1.3 影子編譯…………………………………………………………………………… 14
2.1.4 版本控製…………………………………………………………………………… 14
2.2 係統程序窗口…………………………………………………………………………… 14
2.2.1 對話框開發………………………………………………………………………… 14
2.2.2 資源管理…………………………………………………………………………… 16
2.2.2.1 圖片與圖標資源……………………………………………………………… 16
2.2.2.2 css樣式錶…………………………………………………………………… 17
2.3 登錄係統………………………………………………………………………………… 18
2.3.1 按鈕響應…………………………………………………………………………… 18
2.3.2 讀/寫組件值……………………………………………………………………… 19
2.4 托盤管理………………………………………………………………………… 19
2.4.1 Windows係統托盤……………………………………………………………… 19
2.4.2 事件劫持…………………………………………………………………………… 20
2.4.3 菜單管理…………………………………………………………………………… 21
2.4.3.1 鼠標右鍵動作………………………………………………………………… 21
2.4.3.2 鼠標左鍵動作………………………………………………………………… 23
2.5 單實例管理……………………………………………………………………………… 24
2.5.1 進程與實例………………………………………………………………………… 24
2.5.2 單實例管理概述…………………………………………………………………… 25
2.6 再論對話框……………………………………………………………………………… 26
2.6.1 係統對話框………………………………………………………………………… 26
2.6.2 自定義對話框……………………………………………………………………… 27
第3章 Web網絡服務模塊…………………………………………………………………… 29
3.1 Qt網絡模塊…………………………………………………………………………… 29
3.1.1 網絡模塊類………………………………………………………………………… 29
3.1.2 QNetworkAccessManager類與QNetworkReply類…………………………… 29
3.2 下載升級文件…………………………………………………………………………… 30
3.2.1 信號與槽函數……………………………………………………………………… 30
3.2.2 功能模塊與類……………………………………………………………………… 31
3.3 程序自動升級…………………………………………………………………………… 33
3.3.1 強製升級機製……………………………………………………………………… 33
3.3.2 係統實現…………………………………………………………………………… 34
3.3.2.1 讀取INI文件中的版本信息…………………………………………………… 34
3.3.2.2 設計本地信息INI文件………………………………………………………… 34
3.3.2.3 讀寫MyDocuments目錄下的INI文件………………………………………… 35
3.3.2.4 邏輯判斷……………………………………………………………………… 36
3.3.2.5 開始下載……………………………………………………………………… 37
3.3.2.6 啓動進程外EXE文件完成升級………………………………………………… 39
第4章 通用跨語言層遠程網絡通信………………………………………………………… 40
4.1 遠程調用與通信………………………………………………………………………… 40
4.1.1 進程間通信………………………………………………………………………… 40
4.1.2 網絡間通信………………………………………………………………………… 41
4.1.2.1 通信協議……………………………………………………………………… 41
4.1.2.2 通信程序與語言……………………………………………………………… 42
4.1.3 跨語言通信………………………………………………………………………… 48
4.1.3.1 可執行程序層跨語言通信……………………………………………………… 48
4.1.3.2 鏈接庫層跨語言通信………………………………………………………… 49
4.1.3.3 代碼層跨語言通信…………………………………………………………… 53
4.2 代碼層跨語言通信協議………………………………………………………………… 53
4.2.1 JavaRMI ………………………………………………………………………… 53
2 Qt平颱體係與應用———Qt5.5+核心方法、技巧與案例
4.2.2 WebService ……………………………………………………………………… 54
4.2.2.1 WebService功能實現………………………………………………………… 54
4.2.2.2 WebService功能描述………………………………………………………… 55
4.2.2.3 WebService遠程調用………………………………………………………… 55
4.2.3 Hessian協議……………………………………………………………………… 58
4.2.3.1 Hessian協議介紹……………………………………………………………… 58
4.2.3.2 代碼實現……………………………………………………………………… 59
4.3 Qt中的Hessian協議………………………………………………………………… 60
4.3.1 Hessian的C語言實現…………………………………………………………… 60
4.3.1.1 官方實現……………………………………………………………………… 60
4.3.1.2 第三方實現…………………………………………………………………… 61
4.3.1.3 Qt實現……………………………………………………………………… 62
4.3.2 qhessian的遠程過程調用………………………………………………………… 63
4.3.2.1 qhessian包的結構…………………………………………………………… 63
4.3.2.2 通信原理與代碼實現………………………………………………………… 66
4.4 遠程傳輸與控製係統實例解析…………………………………………………… 69
4.4.1 總體需求分析……………………………………………………………………… 69
4.4.2 服務器端業務需求與功能模塊…………………………………………………… 70
4.4.2.1 功能模塊與接口……………………………………………………………… 70
4.4.2.2 數據層支持…………………………………………………………………… 71
4.4.3 客戶端業務需求與功能模塊……………………………………………………… 71
4.4.3.1 客戶端引入qhessian模塊……………………………………………………… 71
4.4.3.2 客戶端實現…………………………………………………………………… 73
4.4.3.3 主程序接口調用……………………………………………………………… 75
4.4.4 編譯與調試………………………………………………………………………… 76
4.4.4.1 配置文件……………………………………………………………………… 76
4.4.4.2 服務器與客戶端……………………………………………………………… 76
第5章 硬件模塊與底層驅動………………………………………………………………… 78
5.1 Qt引入硬件層………………………………………………………………………… 78
5.1.1 動態鏈接庫………………………………………………………………………… 79
5.1.2 Qt程序靜態加載動態鏈接庫…………………………………………………… 79
5.1.2.1 Linux平颱…………………………………………………………………… 80
5.1.2.2 Windows平颱………………………………………………………………… 80
5.1.2.3 代碼實現……………………………………………………………………… 81
5.1.3 Qt程序動態加載動態鏈接庫…………………………………………………… 85
5.1.4 Qt程序加載非完整動態鏈接庫………………………………………………… 86
5.2 二代身份證讀卡器……………………………………………………………………… 90
5.2.1 功能描述…………………………………………………………………………… 90
5.2.1.1 二代身份證…………………………………………………………………… 90
5.2.1.2 二代身份證讀卡器…………………………………………………………… 91
5.2.2 驅動接口…………………………………………………………………………… 92
5.2.2.1 公安部標準接口……………………………………………………………… 92
5.2.2.2 C語言實現…………………………………………………………………… 93
5.2.3 Qt調用…………………………………………………………………………… 96
5.2.3.1 讀取身份證信息……………………………………………………………… 96
5.2.3.2 身份證信息的原始格式……………………………………………………… 101
5.2.3.3 身份證照片與指紋信息……………………………………………………… 104
5.2.3.4 Hessian上傳身份證信息……………………………………………………… 105
5.2.4 兼容性…………………………………………………………………………… 113
5.3 SIM 卡讀/寫卡器…………………………………………………………………… 114
5.3.1 SIM 卡…………………………………………………………………………… 114
5.3.2 SIM 卡開發……………………………………………………………………… 115
5.3.2.1 ISO7816 …………………………………………………………………… 116
5.3.2.2 GSM11.11 ………………………………………………………………… 117
5.3.2.3 GSM11.14 ………………………………………………………………… 117
5.3.2.4 APDU 指令集……………………………………………………………… 118
5.3.2.5 Winscard封裝……………………………………………………………… 122
5.3.3 實際係統開發…………………………………………………………………… 124
5.3.3.1 聯通SIM 卡………………………………………………………………… 124
5.3.3.2 移動SIM 卡………………………………………………………………… 126
5.3.4 Qt實現SIM 卡的讀/寫操作…………………………………………………… 128
5.3.4.1 功能需求與程序架構………………………………………………………… 128
5.3.4.2 讀/寫SIM 卡………………………………………………………………… 128
5.4 其他硬件設備………………………………………………………………………… 136
5.4.1 指紋識彆設備…………………………………………………………………… 136
5.4.2 短信業務模塊設備……………………………………………………………… 136
第6章 Qt關鍵模塊與高級功能…………………………………………………………… 137
6.1 Qt最優語言特色:再論信號與槽…………………………………………………… 137
6.1.1 信號與槽原理…………………………………………………………………… 137
6.1.1.1 Windows傳統消息機製……………………………………………………… 137
6.1.1.2 Qt機製……………………………………………………………………… 139
6.1.2 示例程序………………………………………………………………………… 140
6.1.2.1 定義信號與槽……………………………………………………………… 140
6.1.2.2 創建信號與槽函數…………………………………………………………… 141
6.1.2.3 連接並使用信號與槽………………………………………………………… 142
6.2 Qt事件處理…………………………………………………………………………… 143
6.2.1 事件處理機製…………………………………………………………………… 143
6.2.2 高級事件響應…………………………………………………………………… 146
4 Qt平颱體係與應用———Qt5.5+核心方法、技巧與案例
6.2.2.1 自主推動事件循環…………………………………………………………… 146
6.2.2.2 與Windows程序消息通信…………………………………………………… 146
6.3 係統關鍵功能………………………………………………………………………… 148
6.3.1 查看網絡是否連接……………………………………………………………… 148
6.3.2 識彆操作係統位數……………………………………………………………… 150
6.3.3 查看係統目錄…………………………………………………………………… 150
6.3.3.1 獲取Windows係統目錄……………………………………………………… 150
6.3.3.2 獲取應用程序所在目錄……………………………………………………… 151
6.3.4 防止程序自動退齣……………………………………………………………… 152
6.3.5 執行外部進程…………………………………………………………………… 152
6.3.5.1 啓動第三方進程……………………………………………………………… 152
6.3.5.2 停止第三方進程……………………………………………………………… 153
6.3.5.3 後颱方式啓動第三方進程…………………………………………………… 154
6.3.5.4 指定輸齣方式啓動第三方進程……………………………………………… 154
6.3.5.5 啓動第三方BAT程序……………………………………………………… 154
6.4 服務模塊……………………………………………………………………………… 155
6.4.1 INI文件操作…………………………………………………………………… 155
6.4.2 JSON 文件操作………………………………………………………………… 156
6.4.2.1 簡單格式的JSON串………………………………………………………… 156
6.4.2.2 復雜格式的JSON串………………………………………………………… 157
6.4.3 XML文件操作………………………………………………………………… 158
6.4.4 二進製數據處理………………………………………………………………… 160
6.4.4.1 base64碼…………………………………………………………………… 160
6.4.4.2 文本化處理………………………………………………………………… 160
6.4.5 Qt日誌…………………………………………………………………………… 161
第7章 程序打包與發布…………………………………………………………… 163
7.1 發布Qt程序………………………………………………………………………… 163
7.1.1 Release與Debug編譯………………………………………………………… 163
7.1.2 動態鏈接庫依賴………………………………………………………………… 163
7.2 打包程序……………………………………………………………………………… 165
7.2.1 InstallShield打包……………………………………………………………… 166
7.2.1.1 創建基本的安裝包…………………………………………………………… 166
7.2.1.2 卸載功能…………………………………………………………………… 166
7.2.1.3 安裝第三方包與安裝後重啓………………………………………………… 166
7.2.2 inno打包………………………………………………………………………… 168
7.2.2.1 基本功能…………………………………………………………………… 168
7.2.2.2 高級功能…………………………………………………………………… 170
參考文獻………………………………………………………………………… 176
· · · · · · (
收起)