第1章 認識PyQt 5 1
1.1 PyQt框架簡介 1
1.1.1 PyQt 5的特點 3
1.1.2 Qt與PyQt的關係 4
1.1.3 其他圖形界麵開發庫介紹 4
1.1.4 PyQt 4/PyQt 5 6
1.1.5 Python 2/Python 3 6
1.2 PyQt 5環境搭建 7
1.2.1 在Windows下搭建PyQt 5環境 7
1.2.2 在Mac OS下搭建PyQt 5環境 15
1.2.3 PyQt 5的安裝測試 20
1.2.4 安裝其他Python模塊 22
1.2.5 使用PyQt 5的API文檔 23
1.3 Eric 6的安裝與使用 25
1.3.1 Eric 6的安裝及漢化 26
1.3.2 Eric 6的相關配置 29
1.3.3 安裝自動補全插件jedi 33
1.3.4 測試Eric 6 35
1.3.5 Eric 6的基本使用 35
1.4 本書程序下載 39
第2章 Python基本語法 41
2.1 Python簡介 41
2.2 數據類型 43
案例2-1 基本運算 43
2.3 String(字符串) 45
案例2-2 字符串入門 45
案例2-3 字符串常用方法 46
2.4 List(列錶) 47
案例2-4 列錶操作 48
2.5 Tuple(元組) 49
案例2-5 元組操作 49
2.6 Dictionary(字典) 50
案例2-6 字典操作 50
2.7 數據類型轉換 52
2.8 控製語句 53
案例2-7 控製語句 53
2.9 自定義函數 54
案例2-8 函數定義 55
2.10 函數partial 55
案例2-9 partial函數的使用 56
2.11 lambda錶達式 57
案例2-10 lambda錶達式操作 57
2.12 類和實例 58
案例2-11 類和實例的使用 58
2.13 類的屬性和方法 59
案例2-12 類的屬性和方法的使用 59
2.14 類的動態屬性 61
案例2-13 類的動態屬性操作 61
第3章 Qt Designer的使用 64
3.1 Qt Designer快速入門 64
3.1.1 新建主窗口 65
3.1.2 窗口主要區域介紹 66
3.1.3 查看UI文件 68
3.1.4 將.ui文件轉換為.py文件 70
3.1.5 界麵與邏輯分離 74
3.2 布局管理入門 75
3.2.1 使用布局管理器布局 76
3.2.2 使用容器進行布局 79
3.3 Qt Designer 實戰應用 81
3.3.1 絕對布局 81
3.3.2 使用布局管理器布局 83
3.3.3 其他需要注意的內容 91
3.3.4 測試程序 94
3.4 信號和槽關聯 96
3.4.1 簡單入門 97
3.4.2 快速進階 101
3.5 菜單欄與工具欄 106
3.5.1 界麵設計 106
3.5.2 效果測試 110
3.5.3 應用:加載其他窗口 112
3.6 打包資源文件 115
3.6.1 使用Qt Designer加載資源文件 115
3.6.2 在窗體中使用資源文件 116
3.6.3 轉換資源文件 118
3.6.4 導入.py資源文件 119
第4章 PyQt 5基本窗口控件 122
4.1 QMainWindow 122
4.1.1 窗口類型介紹 122
4.1.2 創建主窗口 123
案例4-1 創建主窗口 124
4.1.3 將主窗口放在屏幕中間 125
案例4-2 主窗口居中顯示 125
4.1.4 關閉主窗口 127
案例4-3 關閉主窗口 127
4.2 QWidget 128
4.2.1 窗口坐標係統 129
4.2.2 常用的幾何機構 130
案例4-4 屏幕坐標係統顯示 131
4.2.3 創建第一個PyQt 5應用 133
案例4-5 建立一個主窗口 133
4.2.4 為應用設置程序圖標 136
案例4-6 設置程序圖標 136
4.2.5 顯示氣泡提示信息 137
4.3 QLabel 138
案例4-7 顯示QLabel標簽 140
案例4-8 QLabel標簽快捷鍵的使用 142
4.4 文本框類控件 143
4.4.1 QLineEdit 143
案例4-9 EchoMode的顯示效果 146
案例4-10 驗證器 147
案例4-11 輸入掩碼 149
案例4-12 綜閤示例 150
4.4.2 QTextEdit 152
案例4-13 QTextEdit的使用 152
4.5 按鈕類控件 154
4.5.1 QAbstractButton 154
4.5.2 QPushButton 154
案例4-14 QPushButton按鈕的使用 155
4.5.3 QRadioButton 158
案例4-15 QRadioButton按鈕的使用 158
4.5.4 QCheckBox 160
案例4-16 QCheckBox按鈕的使用 161
4.6 QComboBox(下拉列錶框) 164
案例4-17 QComboBox按鈕的使用 164
4.7 QSpinBox(計數器) 166
案例4-18 QSpinBox的使用 167
4.8 QSlider(滑動條) 168
案例4-19 QSlider的使用 169
4.9 對話框類控件 171
4.9.1 QDialog 171
案例4-20 QDialog的使用 171
4.9.2 QMessageBox 173
案例4-21 QMessageBox的使用 175
4.9.3 QInputDialog 176
案例4-22 QInputDialog的使用 176
4.9.4 QFontDialog 178
案例4-23 QFontDialog的使用 178
4.9.5 QFileDialog 180
案例4-24 QFileDialog的使用 181
4.10 窗口繪圖類控件 184
4.10.1 QPainter 184
案例4-25 繪製文字 185
案例4-26 繪製點 187
4.10.2 QPen 189
案例4-27 QPen的使用 189
4.10.3 QBrush 191
案例4-28 QBrush 的使用 192
4.10.4 QPixmap 194
案例4-29 QPixmap的使用 194
4.11 拖曳與剪貼闆 195
4.11.1 Drag與Drop 195
案例4-30 拖曳功能 197
4.11.2 QClipboard 198
案例4-31 QClipboard的使用 199
4.12 日曆與時間 202
案例4-32 QCalendar的使用 202
案例4-33 QDateTimeEdit的使用 209
4.13 菜單欄、工具欄與狀態欄 212
4.13.1 菜單欄 212
案例4-34 QMenuBar的使用 212
4.13.2 QToolBar 214
案例4-35 QToolBar的使用 215
4.13.3 QStatusBar 216
案例4-36 QStatusBar的使用 217
4.14 QPrinter 218
案例4-37 QPrinter的使用 218
第5章 PyQt 5高級界麵控件 221
5.1 錶格與樹 221
5.1.1 QTableView 221
案例5-1 QTableView的使用 222
5.1.2 QListView 224
案例5-2 QListView的使用 225
5.1.3 QListWidget 226
案例5-3 QListWidget的使用 226
5.1.4 QTableWidget 227
5.1.5 QTreeView 245
5.2 容器:裝載更多的控件 251
5.2.1 QTabWidget 251
案例5-4 QTabWidget的使用 252
5.2.2 QStackedWidget 254
案例5-5 QStackedWidget的使用 254
5.2.3 QDockWidget 256
案例5-6 QDockWidget的使用 257
5.2.4 多文檔界麵 259
案例5-7 多重文檔界麵 260
5.2.5 QScrollBar 262
案例5-8 QScrollBar 262
5.3 多綫程 264
5.3.1 QTimer 264
5.3.2 QThread 268
案例5-9 應用案例:分離UI主綫程與工作綫程 274
5.3.3 事件處理 276
5.4 網頁交互 278
案例5-10 加載並顯示外部的Web頁麵 278
案例5-11 加載並顯示本地的Web頁麵 280
案例5-12 加載並顯示嵌入的HTML代碼 281
案例5-13 PyQt調用JavaScript代碼 283
案例5-14 JavaScript調用PyQt代碼 286
第6章 PyQt 5布局管理 294
6.1 好軟件的三個維度 294
6.2 PyQt 5中的布局管理 295
6.3 PyQt 5的絕對位置布局 296
6.4 QBoxLayout(框布局) 298
6.4.1 QHBoxLayout(水平布局) 298
6.4.2 QVBoxLayout(垂直布局) 300
6.4.3 addStretch()函數的使用 301
6.5 QGridLayout(網格布局) 303
6.5.1 單一的網格單元格 304
6.5.2 跨越行和列的網格單元格 306
6.6 QFormLayout(錶單布局) 308
6.7 嵌套布局 309
6.7.1 在布局中添加其他布局 309
6.7.2 在控件中添加布局 311
6.8 QSplitter 314
第7章 PyQt 5信號與槽 317
7.1 信號與槽介紹 317
7.1.1 定義信號 318
7.1.2 操作信號 319
7.1.3 信號與槽的入門應用 320
7.1.4 快速進階 324
7.2 信號與槽再細分 324
7.2.1 內置信號和槽函數 324
7.2.2 內置信號和自定義槽函數 325
7.2.3 自定義信號和內置槽函數 326
7.2.4 自定義信號和槽函數 327
7.3 信號與槽的高級玩法 328
7.3.1 高級自定義信號與槽 328
7.3.2 使用自定義參數 333
7.3.3 裝飾器信號與槽 335
7.3.4 信號與槽的斷開和連接 337
7.3.5 Qt Designer神助攻:界麵顯示與業務邏輯的分離 339
7.3.6 多綫程中信號與槽的使用 345
7.4 事件處理機製入門 348
7.4.1 事件和信號與槽的區彆 348
7.4.2 常見事件類型 348
7.4.3 使用事件處理的方法 349
7.4.4 經典案例分析 349
7.5 窗口數據傳遞 362
7.5.1 單一窗口數據傳遞 363
7.5.2 多窗口數據傳遞:調用屬性 364
7.5.3 多窗口數據傳遞:信號與槽 368
第8章 PyQt 5圖形和特效 373
8.1 窗口風格 373
8.1.1 設置窗口風格 373
案例8-1 設置窗口風格 374
8.1.2 設置窗口樣式 375
8.1.3 使用自定義的無邊框窗口 376
8.2 繪圖 378
8.2.1 圖像類 378
8.2.2 簡單繪圖 379
8.2.3 雙緩衝繪圖 381
案例8-2 繪製矩形,齣現重影 382
案例8-3 使用雙緩衝技術繪製矩形,避免齣現重影 384
8.3 QSS的UI美化 387
8.3.1 QSS的語法規則 387
8.3.2 QSS選擇器類型 389
8.3.3 QSS子控件 390
8.3.4 QSS僞狀態 391
8.3.5 QDarkStyleSheet 392
8.4 設置窗口背景 395
8.4.1 使用QSS設置窗口背景 395
8.4.2 使用QPalette設置窗口背景 396
8.4.3 使用paintEvent設置窗口背景 398
8.5 不規則窗口的顯示 400
8.5.1 不規則窗口實現動畫效果 404
8.5.2 加載GIF動畫效果 406
8.6 設置樣式 407
8.6.1 為標簽添加背景圖片 407
8.6.2 為按鈕添加背景圖片 407
8.6.3 縮放圖片 409
8.6.4 設置窗口透明 409
8.6.5 加載QSS 410
第9章 PyQt 5擴展應用 412
9.1 使用PyInstaller打包項目生成EXE文件 412
9.2 數據庫處理 417
9.2.1 SQLite介紹 417
9.2.2 連接數據庫 421
9.2.3 執行SQL語句 422
9.2.4 數據庫模型視圖 425
9.2.5 封裝分頁查詢控件 428
9.3 Pandas在PyQt中的應用 435
9.3.1 qtpandas的安裝 435
9.3.2 官方示例解讀 436
9.3.3 設置提升的窗口控件 440
9.3.4 qtpandas的使用 442
9.4 Matplotlib在PyQt中的應用 445
9.4.1 對MatplotlibWidget的解讀 445
9.4.2 設置提升的窗口控件 448
9.4.3 MatplotlibWidget的使用 449
9.4.4 更多擴展 451
9.5 PyQtGraph在PyQt中的應用 451
9.5.1 PyQtGraph的安裝 452
9.5.2 官方示例解讀 452
9.5.3 設置提升的窗口控件 453
9.5.4 PyQtGraph的使用 454
9.5.5 更多擴展 457
9.6 Plotly在PyQt中的應用 457
9.6.1 Plotly的安裝 458
9.6.2 示例解讀 458
9.6.3 設置提升的窗口控件 460
9.6.4 Plotly_PyQt5的使用 461
9.6.5 更多擴展 464
9.6.6 Plotly與PyQt 5.6的結閤 465
9.6.7 更多擴展 468
9.7 UI層的自動化測試 468
9.7.1 手工測試與自動化測試 469
9.7.2 模擬雞尾酒的調酒器窗口 470
9.7.2 將界麵文件轉換為Python文件 473
9.7.3 單元測試程序 475
9.7.4 運行測試用例 485
9.7.5 生成測試報告 486
第10章 PyQt 5實戰一:經典程序開發 489
10.1 獲取城市天氣預報 489
10.1.1 獲取天氣數據 489
10.1.2 獲取不同城市的天氣預報API 490
10.1.3 界麵實現 492
10.1.4 將界麵文件轉換為.py文件 493
10.1.5 調用主窗口類 495
10.2 復利計算 496
10.2.1 復利計算業務 496
10.2.2 界麵實現 497
10.3 刷新博客點擊量 499
第11章 PyQt 5實戰二:金融領域應用 502
11.1 控件級彆的布局管理 502
11.2 窗口級彆的布局管理 505
11.3 PyQt 5在私募基金公司中的應用 506
11.3.1 顯示産品基本信息 506
11.3.2 展示産品組閤信息 512
11.4 PyQt 5在量化投資中的應用 516
11.5 PyQt 5在券商中的應用 522
11.5.1 從爬蟲說起 523
11.5.2 程序解讀 525
參考文獻 550
· · · · · · (
收起)