Python Qt GUI與數據可視化編程

Python Qt GUI與數據可視化編程

《Python Qt GUI與數據可視化編程》是2020年3月人民郵電出版社出版的圖書,作者是王維波、栗寶鵑、張曉東。

基本介紹

  • 中文名:Python Qt GUI與數據可視化編程
  • 作者:王維波、栗寶鵑、張曉東
  • 出版時間:2020年3月
  • 出版社人民郵電出版社
  • 頁數:490 頁
  • ISBN:9787115514165
  • 定價:99 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

本書介紹在Python中使用PyQt5和其他模組進行GUI和數據可視化編程的方法。第一部分介紹PyQt5設計GUI程式的基本框架,包括GUI應用程式的基本結構、窗體UI可視化設計與窗體業務邏輯的設計、信號與槽的特點和使用等。第二部分介紹GUI程式設計中一些主要功能模組的使用,包括基本界面組件、事件處理、資料庫、繪圖、多媒體等。第三部分先介紹使用PyQtChart和PyQtDataVisualization進行二維和三維數據可視化設計的方法,再介紹將Matplotlib嵌入PyQt5 GUI應用程式視窗界面中進行數據可視化的編程方法。通過研讀本書,讀者可以掌握使用PyQt5、PyQtChart、Matplotlib等模組進行GUI應用程式和數據可視化設計的方法。
本書適合具有Python編程基礎,並想通過Python設計GUI應用程式或在GUI應用程式中實現數據可視化的讀者閱讀和參考。

圖書目錄

第 一部分 PyQt5開發基礎
第 1章 開發環境安裝 2
1.1 Python 2
1.1.1 Python 簡介 2
1.1.2 Python的下載與安裝 2
1.1.3 IDLE的基本使用 3
1.1.4 安裝Python包 4
1.2 Qt 5
1.2.1 Qt 簡介 5
1.2.2 Qt 的下載與安裝 5
1.2.3 Qt的幾個工具軟體 7
1.2.4 Qt Creator的設定 7
1.3 PyQt5 8
1.3.1 PyQt5簡介 8
1.3.2 PyQt5安裝 9
1.3.3 在IDLE中開啟對PyQt5的代碼提示功能 10
第 2章 PyQt5 GUI程式框架 11
2.1 PyQt5 GUI程式的基本框架 11
2.2 使用可視化設計窗體的GUI程式 12
2.2.1 用UI Designer可視化設計窗體 13
2.2.2 將ui檔案編譯為py檔案 16
2.2.3 使用Ui_FormHello類的GUI程式框架 18
2.2.4 界面與邏輯分離的GUI程式框架 19
2.3 信號與槽的使用 23
2.3.1 信號與槽功能概述 23
2.3.2 Qt Creator的使用 23
2.3.3 窗體可視化設計 25
2.3.4 界面組件布局管理 26
2.3.5 組件的信號與內建槽函式的關聯 29
2.3.6 PyQt5 GUI項目程式框架 30
2.3.7 為組件的內建信號編寫槽函式 35
2.4 自定義信號的使用 39
2.4.1 信號與槽的一些特點和功能 39
2.4.2 自定義信號使用示例 40
2.4.3 使用信號與槽的一些注意事項 43
2.5 資源檔案的使用 43
2.5.1 功能概述 43
2.5.2 窗體可視化設計 44
2.5.3 創建和使用資源檔案 44
2.5.4 窗體檔案和資源檔案的編譯 45
2.5.5 窗體業務邏輯類的設計 46
2.5.6 為應用程式設定圖示 47
2.6 從Qt C++類庫到PyQt5 47
2.6.1 幫助信息的查找 47
2.6.2 正確導入模組中的類 49
2.6.3 部分類和接口函式的差異 50
2.6.4 數據類型對應關係 51
2.7 3個單窗體GUI項目模板 52
2.7.1 概述 52
2.7.2 dialogApp項目模板 53
2.7.3 widgetApp項目模板 54
2.7.4 mainWindowApp項目模板 55
2.7.5 使用項目模板和實例源程式 56
2.7.6 在Eric中編輯和運行示例程式 57
第二部分 GUI應用程式設計
第3章 常用界面組件的使用 60
3.1 數據輸入輸出 60
3.2 QPushButton 62
3.3 QSlider和QProgressBar 64
3.4 日期時間數據 66
3.4.1 日期時間類和界面組件 66
3.4.2 日期時間數據的獲取並轉換為字元串 67
3.4.3 字元串轉換為日期時間 68
3.4.4 QLineEdit的inputMask 68
3.5 定時器QTimer 69
3.6 下拉列表框QComboBox 70
3.6.1 QComboBox功能概述 70
3.6.2 簡單的ComboBox操作 71
3.6.3 帶用戶數據的ComboBox 72
3.6.4 QComboBox常用函式總結 73
3.7 QMainWindow與QAction 73
3.7.1 功能簡介 73
3.7.2 窗體可視化設計 75
3.7.3 界面操作功能的代碼實現 77
3.8 QListWidget和QToolButton 80
3.8.1 功能概述 80
3.8.2 窗體可視化設計 81
3.8.3 QToolButton與下拉式選單 84
3.8.4 QListWidget的操作 85
3.8.5 創建右鍵快捷選單 88
3.9 QTreeWidget和QDockWidget 88
3.9.1 功能概述 88
3.9.2 窗體可視化設計 90
3.9.3 QTreeWidget操作 91
3.9.4 QLabel和QPixmap顯示圖片 96
3.9.5 QDockWidget的操作 97
3.10 QTableWidget 98
3.10.1 QTableWidget概述 98
3.10.2 窗體設計與初始化 99
3.10.3 QTableWidget操作 100
3.11 容器類組件與布局設計 105
3.11.1 QGroupBox組件與水平布局 106
3.11.2 布局的layoutStretch屬性 106
3.11.3 格線狀布局 107
3.11.4 分割條 108
第4章 Model/View結構 109
4.1 Model/View結構 109
4.1.1 Model/View結構基本原理 109
4.1.2 Model(數據模型) 110
4.1.3 View(視圖) 111
4.1.4 Delegate(代理) 111
4.1.5 Model/View結構的一些概念 112
4.2 QFileSystemModel 114
4.2.1 QFileSystemModel類的基本功能 114
4.2.2 QFileSystemModel的使用 114
4.3 QStringListModel 116
4.3.1 QStringListModel功能概述 116
4.3.2 QStringListModel的使用 116
4.4 QStandardItemModel 119
4.4.1 功能概述 119
4.4.2 界面設計 120
4.4.3 QStandardItemModel的使用 120
4.5 自定義代理 128
4.5.1 自定義代理的功能 128
4.5.2 自定義代理類的基本設計要求 128
4.5.3 基於QDoubleSpinBox的自定義代理類 129
4.5.4 基於QComboBox的自定義代理類 130
4.5.5 自定義代理類的使用 131
第5章 事件處理 133
5.1 默認事件處理 133
5.1.1 應用程式的事件循環 133
5.1.2 事件類型與默認的事件處理函式 133
5.1.3 事件與信號的關係 137
5.2 事件攔截與事件過濾 139
5.2.1 event()函式的作用 139
5.2.2 事件過濾器 140
5.2.3 事件佇列的及時處理 141
5.3 拖放事件與拖放操作 142
5.3.1 拖放操作相關事件 142
5.3.2 外部檔案拖放操作示例 143
5.4 具有拖放操作功能的組件 146
5.4.1 功能概述 146
5.4.2 界面設計與初始化 147
5.4.3 拖放操作屬性的顯示 148
5.4.4 拖放屬性的設定 149
5.4.5 通過事件過濾器實現項的刪除 150
第6章 對話框與多視窗設計 151
6.1 標準對話框 151
6.1.1 概述 151
6.1.2 QFileDialog對話框 152
6.1.3 QColorDialog對話框 154
6.1.4 QFontDialog對話框 154
6.1.5 QProgressDialog對話框 155
6.1.6 QInputDialog輸入對話框 156
6.1.7 QMessageBox訊息對話框 157
6.2 自定義對話框及其使用 159
6.2.1 對話框的不同調用方式 159
6.2.2 示例項目的檔案組成 160
6.2.3 主視窗的設計與初始化 161
6.2.4 對話框QmyDialogSize的創建和使用 163
6.2.5 對話框QmyDialogHeaders的創建和使用 165
6.2.6 對話框QmyDialogLocate的創建和使用 166
6.3 多視窗應用程式 170
6.3.1 主要的窗體類及其用途 170
6.3.2 窗體類重要特性的設定 170
6.3.3 多視窗應用程式設計示例 172
6.4 MDI應用程式設計 179
6.4.1 MDI簡介 179
6.4.2 文檔窗體類QmyFormDoc的設計 180
6.4.3 主視窗設計與子視窗的使用 181
第7章 資料庫 185
7.1 Qt SQL模組概述 185
7.1.1 Qt SQL支持的資料庫 185
7.1.2 SQLite資料庫 185
7.1.3 Qt SQL模組的主要類 187
7.2 QSqlTableModel的使用 188
7.2.1 功能概述 188
7.2.2 窗體可視化設計 190
7.2.3 窗體業務邏輯類的設計和初始化 190
7.2.4 打開資料庫和數據表 191
7.2.5 添加、插入與刪除記錄 197
7.2.6 保存與取消修改 198
7.2.7 設定和清除照片 199
7.2.8 數據記錄的遍歷 199
7.2.9 記錄的排序 200
7.2.10 記錄的過濾 200
7.3 QSqlQueryModel的使用 201
7.3.1 QSqlQueryModel功能概述 201
7.3.2 窗體業務邏輯類的設計和初始化 202
7.3.3 打開資料庫和查詢數據 202
7.3.4 記錄移動 205
7.4 QSqlQuery的使用 206
7.4.1 QSqlQuery基本用法 206
7.4.2 QSqlQueryModel和QSqlQuery聯合使用 207
7.5 QSqlRelationalTableModel的使用 215
7.5.1 關係數據表和示例功能 215
7.5.2 關係數據模型功能實現 216
第8章 繪圖 219
8.1 QPainter繪圖 219
8.1.1 QPainter繪圖系統 219
8.1.2 QPen的主要功能 221
8.1.3 QBrush的主要功能 223
8.1.4 漸變填充 224
8.1.5 QPainter繪製基本圖形 227
8.2 坐標系統和坐標變換 230
8.2.1 坐標變換函式 230
8.2.2 坐標變換繪圖實例 231
8.2.3 視口和視窗 234
8.2.4 繪圖疊加的效果 236
8.3 自定義界面組件 237
8.3.1 功能概述 237
8.3.2 自定義QWidget子類QmyBattery 237
8.3.3 QmyBattery類的使用 239
8.4 Graphics View繪圖架構 241
8.4.1 場景、視圖與圖形項 241
8.4.2 Graphics View的坐標系統 242
8.4.3 Graphics View相關的類 243
8.4.4 Graphics View程式基本結構 246
8.4.5 Graphics View繪圖程式示例 250
第9章 檔案 261
9.1 檔案操作相關類概述 261
9.1.1 檔案操作接口類QFile 261
9.1.2 檔案流操作類QTextStream和QDataStream 262
9.1.3 和檔案操作相關的類 262
9.2 文本檔案讀寫 263
9.2.1 功能概述 263
9.2.2 QFile讀寫文本檔案 263
9.2.3 QFile和QTextStream結合讀寫文本檔案 266
9.2.4 Python內建函式讀寫文本檔案 268
9.3 二進制檔案讀寫 269
9.3.1 基礎知識和工具軟體 269
9.3.2 QDataStream功能概述 271
9.3.3 QDataStream流化數據讀寫 272
9.3.4 QDataStream原始數據讀寫 281
9.4 和檔案操作 288
9.4.1 和檔案操作相關的類 288
9.4.2 示例功能概述 288
9.4.3 QFile類 290
9.4.4 QFileInfo類 291
9.4.5 QDir類 292
9.4.6 QFileSystemWatcher類 294
第 10章 多媒體 297
10.1 PyQt5多媒體模組功能概述 297
10.2 音頻播放 298
10.2.1 使用QMediaPlayer播放音樂檔案 298
10.2.2 使用QSoundEffect和QSound播放音效檔案 303
10.3 音頻輸入 304
10.3.1 使用QAudioRecorder錄製音頻 304
10.3.2 使用QAudioInput獲取音頻輸入 310
10.4 視頻播放 317
10.4.1 在QVideoWidget上顯示視頻 317
10.4.2 在QGraphicsVideoItem上播放視頻 321
10.5 攝像頭的使用 322
10.5.1 攝像頭操作概述 322
10.5.2 示例功能和界面可視化設計 324
10.5.3 使用攝像頭拍照 324
10.5.4 使用QMediaRecorder通過攝像頭錄像 328
第 11章 GUI設計增強技術 329
11.1 多語言界面 329
11.1.1 多語言界面設計概述 329
11.1.2 多語言界面設計示例 331
11.2 QSS定製界面 336
11.2.1 Qt樣式表的作用 336
11.2.2 Qt樣式表句法 337
11.2.3 Qt樣式表的使用 342
第三部分 數據可視化
第 12章 PyQtChart二維繪圖 346
12.1 PyQtChart概述 346
12.1.1 模組安裝與基本功能 346
12.1.2 一個簡單的PyQtChart繪圖程式 347
12.1.3 圖表的主要組成部分 348
12.2 QChart繪製折線圖 350
12.2.1 示例功能概述與界面設計 350
12.2.2 QPen屬性設定對話框設計 351
12.2.3 主視窗業務邏輯類初始化 353
12.2.4 圖表各組成部件的屬性設定 356
12.3 QChart繪圖高級功能 365
12.3.1 功能概述 365
12.3.2 自定義類QmyChartView 366
12.3.3 主視窗可視化設計 368
12.3.4 繪圖功能的實現 368
12.4 對數坐標軸和多坐標軸 373
12.4.1 功能概述 373
12.4.2 主視窗可視化設計 374
12.4.3 界面和圖表初始化 374
12.4.4 載入數據檔案並繪製曲線 375
12.5 餅圖和各種柱狀圖 377
12.5.1 功能概述 377
12.5.2 視窗初始化與數據準備 378
12.5.3 其他界面操作功能的實現 381
12.5.4 柱狀圖 382
12.5.5 堆疊柱狀圖 387
12.5.6 百分比柱狀圖 388
12.5.7 餅圖 390
12.6 蠟燭圖和日期時間坐標軸 392
12.6.1 功能概述 392
12.6.2 界面和圖表初始化 394
12.6.3 繪圖功能的實現 395
12.7 區域填充圖 399
12.7.1 功能概述 399
12.7.2 界面和圖表初始化 400
12.7.3 繪圖功能的實現 402
12.8 極坐標圖 405
12.8.1 功能概述 405
12.8.2 繪製極坐標圖 406
12.8.3 其他功能的實現 408
第 13章 PyQtDataVisualization三維繪圖 411
13.1 PyQtDataVisualization模組概述 411
13.1.1 模組安裝與導入 411
13.1.2 模組中主要的類 411
13.2 三維柱狀圖 413
13.2.1 功能概述 413
13.2.2 窗體可視化設計 413
13.2.3 初始化創建三維柱狀圖 414
13.2.4 其他功能的實現 417
13.3 三維散點圖 424
13.3.1 功能概述 424
13.3.2 創建三維散點圖 425
13.3.3 散點數據管理 427
13.4 三維曲面圖 429
13.4.1 功能概述 429
13.4.2 三維曲面圖 429
13.4.3 三維地形圖 434
第 14章 Matplotlib數據可視化 437
14.1 Matplotlib的基本用法 437
14.1.1 Matplotlib的安裝 437
14.1.2 一個腳本化的繪圖程式 438
14.1.3 GUI程式中的Matplotlib繪圖 439
14.2 圖的主要元素的面向對象操作 443
14.2.1 圖的主要組成元素 443
14.2.2 示例程式功能和窗體可視化設計 445
14.2.3 界面創建與初始化繪圖 446
14.2.4 Figure對象的操作 450
14.2.5 Axes子圖的操作 453
14.2.6 曲線設定 456
14.2.7 x軸和y軸設定 458
14.3 互動操作 464
14.3.1 互動功能概述 464
14.3.2 界面構造與初始化繪圖 466
14.3.3 界面其他功能的實現 469
14.3.4 互動事件的處理 469
14.4 典型二維圖的繪製 471
14.4.1 自定義繪圖組件類QmyFigureCanvas 471
14.4.2 QmyFigureCanvas類的使用 473
14.4.3 直方圖 475
14.4.4 填充圖 476
14.4.5 餅圖 477
14.4.6 火柴桿圖 478
14.4.7 極坐標圖 480
14.5 三維數據繪圖 482
14.5.1 三維數據繪圖概述 482
14.5.2 窗體初始化 483
14.5.3 繪製三維圖 486
14.5.4 三維數據繪製二維圖 487
14.5.5 colormap 488

相關詞條

熱門詞條

聯絡我們