《Python GUI設計PyQt5從入門到實踐》一書以開發Python視窗程式最常用的PyQt5模組為主線,全面介紹了使用PyQt5設計Python GUI程式的各方面技術。
本書不僅適合作為PyQt5編程初學者的學習用書,而且適合作為Python開發人員的查閱和參考資料;另外,對從C++、C#、Java等程式語言轉入的開發人員也有很高的參考價值。
基本介紹
- 中文名:Python GUI設計PyQt5從入門到實踐(全彩版)
- 別名:PyQt5從入門到實踐
- 作者:明日科技、王小科、李艷
- 類別:編程
- 出版社:吉林大學出版社
- 出版時間:2020年7月1日
- 頁數:384 頁
- 定價:98 元
- 開本:16 開
- 裝幀:明日科技
- ISBN:9787569267563
圖書目錄
第1章 Python與PyQt5
1.1 Python語言介紹 1
1.1.1 了解Python 1
1.1.2 Python的版本 2
1.1.3 Python的套用領域 2
1.2 GUI與PyQt5 5
1.2.1 GUI簡介 5
1.2.2 什麼是PyQt5 6
1.2.3 PyQt5與Qt的關係 7
1.2.4 PyQt5的主要模組 8
1.2.5 其他常用GUI開發庫 10
溫故知新 11
第2章 搭建開發環境
2.1 Python的下載與安裝 13
2.1.1 Python開發環境概述 13
2.1.2 下載Python 14
2.1.3 安裝Python 16
2.1.4 測試Python是否安裝成功 19
2.1.5 Python安裝失敗的解決方法 20
2.2 PyCharm開發工具的下載與安裝 22
2.2.1 下載PyCharm 22
2.2.2 安裝PyCharm 23
2.2.3 啟動並配置PyCharm 26
2.3 在PyCharm中配置PyQt5環境 28
2.3.1 安裝PyQt5及設計器 28
2.3.2 配置PyQt5設計器及轉換工具 33
溫故知新 36
第3章 第一個PyQt5視窗程式
3.1 認識Qt Designer 37
3.1.1 幾種常用的視窗類型 37
3.1.2 熟悉Qt Designer視窗區域 41
3.2 使用Qt Designer創建視窗 46
3.2.1 MainWindow介紹 46
3.2.2 創建主視窗 47
3.2.3 設計主視窗 47
3.2.4 預覽視窗效果 48
3.2.5 查看Python代碼 49
3.2.6 將.ui檔案轉換為.py檔案 50
3.2.7 運行主視窗 51
溫故知新 51
第4章 PyQt5視窗設計基礎
4.1 視窗屬性列表53
4.2 視窗的個性化設定54
4.2.1 基本屬性設定 54
4.2.2 更換視窗的圖示 56
4.2.3 設定視窗的背景 58
4.2.4 控制視窗透明度 66
4.2.5 設定視窗樣式 66
4.3 信號與槽68
4.3.1 信號與槽的基本概念 68
4.3.2 編輯信號與槽 69
4.3.3 自定義槽 71
4.3.4 將自定義槽連線到信號 72
4.4 多視窗設計 72
4.4.1 多視窗的建立 72
4.4.2 設定啟動視窗 74
4.4.3 視窗之間的關聯 74
溫故知新 75
第5章 PyQt5常用控制項
5.1 控制項概述77
5.1.1 認識控制項 77
5.1.2 控制項的命名規範 79
5.2 文本類控制項 80
5.2.1 Label:標籤控制項 80
5.2.2 LineEdit:單行文本框 83
5.2.3 TextEdit:多行文本框 86
5.2.4 SpinBox:整數數字選擇控制項87
5.2.5 DoubleSpinBox:小數數字選擇控制項 88
5.2.6 LCDNumber:液晶數字顯示控制項 90
5.3 按鈕類控制項 91
5.3.1 PushButton:按鈕 91
5.3.2 ToolButton:工具按鈕 94
5.3.3 CommandLinkButton:命令連結按鈕 95
5.3.4 RadioButton:單選按鈕 96
5.3.5 CheckBox:複選框 99
5.4 選擇列表類控制項 100
5.4.1 ComboBox:下拉組合框100
5.4.2 FontComboBox:字型組合框 102
5.4.3 ListWidget:列表 103
5.5 容器控制項106
5.5.1 GroupBox:分組框 106
5.5.2 TabWidget:選項卡 107
5.5.3 ToolBox:工具盒 109
5.6 日期時間類控制項 114
5.6.1 日期和(或)時間控制項 114
5.6.2 CalendarWidget:日曆控制項 116
溫故知新 119
第6章 PyQt5高級控制項
6.1 進度條類控制項121
6.1.1 ProgressBar:進度條 121
6.1.2 自定義等待提示框 126
6.1.3 滑塊:QSlider 128
6.2 樹控制項 132
6.2.1 TreeView:樹視圖 132
6.2.2 TreeWidget:樹控制項137
6.3 分割控制項142
6.3.1 分割線:QFrame 142
6.3.2 彈簧:QSpacerItem 144
6.4 其他控制項145
6.4.1 Dial:旋鈕控制項145
6.4.2 滾動條:QScrollBar148
溫故知新 149
第7章 選單、工具列和狀態欄
7.1 選單 151
7.1.1 選單基礎類 151
7.1.2 添加和刪除選單 153
7.1.3 設定選單項 154
7.1.4 為選單設定快捷鍵 155
7.1.5 為選單設定圖示 156
7.1.6 選單的功能實現 156
7.2 工具列 159
7.2.1 工具列類:QToolBar 159
7.2.2 添加工具列 160
7.2.3 為工具列添加圖示按鈕 161
7.2.4 一次為工具列添加多個圖示按鈕 161
7.2.5 向工具列中添加其他控制項 162
7.2.6 設定工具列按鈕的大小 162
7.2.7 工具列的單擊功能實現 163
7.3 狀態欄 165
7.3.1 狀態欄類:QStatusBar 165
7.3.2 添加狀態欄 166
7.3.3 向狀態欄中添加控制項 167
7.3.4 在狀態欄中顯示和刪除臨時信息 167
7.3.5 在狀態欄中實時顯示當前時間 168
溫故知新 170
第8章 對話框套用
8.1 QMessageBox:對話框171
8.1.1 對話框的種類 171
8.1.2 對話框的使用方法 172
8.1.3 與對話框進行互動 174
8.2 QFileDialog:檔案對話框 175
8.2.1 QFileDialog類概述 175
8.2.2 使用QFileDialog選擇檔案 176
8.2.3 使用QFileDialog選擇資料夾 178
8.3 QInputDialog:輸入對話框 179
8.3.1 QInputDialog概述 179
8.3.2 QInputDialog對話框的使用 181
8.4 字型和顏色對話框184
8.4.1 QFontDialog:字型對話框 185
8.4.2 QColorDialog:顏色對話框 185
8.4.3 字型和顏色對話框的使用 185
溫故知新 188
第9章 布局管理
9.1 線性布局189
9.1.1 VerticalLayout:垂直布局 190
9.1.2 HorizontalLayout:水平布局 192
9.2 GridLayout:格線布局193
9.2.1 格線布局的基本使用 194
9.2.2 跨越行和列的格線布局 196
9.3 FormLayout:表單布局 198
9.4 布局管理器的嵌套201
9.4.1 嵌套布局的基本使用 201
9.4.2 通過嵌套布局設計一個微信聊天視窗 202
9.5 MDIArea:MDI視窗設計 204
9.5.1 認識MDI子視窗 205
9.5.2 子視窗基礎類 205
9.5.3 MDI子視窗的動態添加及排列 206
溫故知新 209
第10章 資料庫操作
10.1 資料庫編程接口 211
10.1.1 連線對象211
10.1.2 游標對象213
10.2 使用內置的SQLite 213
10.2.1 創建資料庫檔案 214
10.2.2 操作SQLite 215
10.3 MySQL資料庫的使用219
10.3.1 下載安裝MySQL 219
10.3.2 安裝PyMySQL模組 225
10.3.3 連線資料庫 226
10.3.4 創建數據表 226
10.3.5 操作MySQL數據表 228
10.4 表格控制項 229
10.4.1 TableWidget表格控制項 230
10.4.2 在表格中顯示資料庫數據 232
10.4.3 隱藏垂直標題234
10.4.4 設定最後一列自動填充容器234
10.4.5 禁止編輯單元格 235
10.4.6 設定單元格的文本顏色235
10.4.7 設定指定列的排序方式236
10.4.8 在指定列中顯示圖片 237
10.4.9 向指定列中添加PyQt5標準控制項237
10.4.10 合併指定單元格 238
溫故知新 240
第11章 檔案操作
11.1 Python內置的檔案操作 241
11.1.1 創建和打開檔案 241
11.1.2 關閉檔案243
11.1.3 打開檔案時使用with語句 243
11.1.4 寫入檔案內容244
11.1.5 讀取檔案245
11.1.6 複製檔案247
11.1.7 移動檔案247
11.1.8 重命名檔案 247
11.1.9 刪除檔案248
11.1.10 獲取檔案基本信息 248
11.2 Python內置的資料夾操作 251
11.2.1 獲取資料夾路徑 251
11.2.2 判斷資料夾是否存在 252
11.2.3 創建資料夾 253
11.2.4 複製資料夾 254
11.2.5 移動資料夾 254
11.2.6 重命名資料夾254
11.2.7 刪除資料夾 255
11.2.8 遍歷資料夾 255
11.3 PyQt5中的檔案及資料夾操作 258
11.3.1 使用QFile類操作檔案 259
11.3.2 使用QDir類操作資料夾 265
溫故知新 270
第12章 PyQt5繪圖技術
12.1 PyQt5繪圖基礎 271
12.2 設定畫筆與畫刷 273
12.2.1 設定畫筆:QPen 273
12.2.2 設定畫刷:QBrush275
12.3 繪製文本 281
12.3.1 設定字型:QFont 281
12.3.2 繪製文本282
12.4 繪製圖像 284
溫故知新 285
第13章 多執行緒編程
13.1 執行緒概述 287
13.1.1 執行緒的定義與分類287
13.1.2 多執行緒的優缺點 288
13.2 QTimer:計時器 289
13.3 QThread:執行緒類 292
13.3.1 執行緒的實現 293
13.3.2 執行緒的生命周期 295
13.3.3 執行緒的套用 296
溫故知新 299
第14章 PyQt5程式的打包發布
14.1 安裝Pyinstaller模組 301
14.2 打包普通Python程式303
14.3 打包PyQt5程式 304
14.4 打包資源檔案 307
溫故知新 307
第15章 綜合項目(一)——明日圖片助手
15.1 需求分析 310
15.2 系統設計 310
15.2.1 系統功能結構310
15.2.2 系統業務流程311
15.2.3 系統預覽311
15.3 系統開發必備 313
15.3.1 系統開發環境313
15.3.2 系統組織結構314
15.4 主窗體設計 314
15.4.1 主窗體概述 314
15.4.2 主窗體實現流程 314
15.4.3 設計主窗體 315
15.4.4 打開添加水印窗體318
15.4.5 打開重命名窗體 319
15.4.6 實現關於本軟體功能 320
15.4.7 運行時顯示窗體 320
15.5 批量添加水印設計 321
15.5.1 窗體概述321
15.5.2 批量添加水印窗體實現流程322
15.5.3 設計批量添加水印窗體322
15.5.4 初始化窗體設定 327
15.5.5 載入圖片列表328
15.5.6 設定水印字型330
15.5.7 選擇水印圖片331
15.5.8 選擇水印圖片保存路徑332
15.5.9 為圖片添加水印 333
15.6 批量重命名設計 337
15.6.1 窗體概述337
15.6.2 批量重命名窗體實現流程 338
15.6.3 設計批量重命名窗體 338
15.6.4 初始化窗體設定 342
15.6.5 載入圖片名稱及路徑 343
15.6.6 對圖片批量重命名345
溫故知新 347
第16章 綜合項目(二)學生成績管理系統
16.1 需求分析 349
16.2 系統設計 350
16.2.1 系統功能結構350
16.2.2 系統業務流程350
16.2.3 系統預覽351
16.3 系統開發必備 356
16.3.1 系統開發環境356
16.3.2 系統組織結構356
16.4 資料庫設計 356
16.4.1 資料庫結構設計 357
16.4.2 數據表結構設計 357
16.4.3 視圖設計359
16.5 公共模組設計 360
16.5.1 模組導入及公共變數 360
16.5.2 打開資料庫連線 361
16.5.3 數據的增刪改361
16.5.4 數據的查詢方法 362
16.6 登錄模組設計 363
16.6.1 登錄模組概述363
16.6.2 模組的導入 363
16.6.3 登錄功能的實現 364
16.6.4 退出登錄窗體364
16.6.5 在Python中啟動登錄窗體 365
16.7 主窗體模組設計 365
16.7.1 主窗體概述 365
16.7.2 模組導入及窗體初始化366
16.7.3 在主窗體中打開其他功能窗體 367
16.7.4 顯示當前登錄用戶和登錄時間 368
16.8 年級設定模組設計 368
16.8.1 年級設定模組概述368
16.8.2 模組的導入 369
16.8.3 窗體載入時顯示所有年級信息 369
16.8.4 年級信息的添加 370
16.8.5 年級信息的修改 371
16.8.6 年級信息的刪除 372
16.9 學生信息管理模組設計 373
16.9.1 學生信息管理模組概述373
16.9.2 根據年級顯示對應班級374
16.9.3 學生信息的查詢 374
16.9.4 添加學生信息375
16.9.5 根據選中編號顯示學生詳細信息377
16.9.6 修改學生信息377
16.9.7 刪除學生信息378
16.10 學生成績管理模組設計 378
16.10.1 學生成績管理模組概述 379
16.10.2 窗體的初始化 379
16.10.3 顯示指定年級指定班的所有學生姓名 380
16.10.4 根據指定條件查詢成績信息 380
16.10.5 添加學生成績信息 382
16.10.6 修改學生成績信息 384
16.10.7 刪除學生成績信息 384
16.11 學生信息查詢模組設計 385
16.11.1 學生信息查詢模組概述 385
16.11.2 學生信息查詢功能的實現 386
16.12 成績信息查詢模組設計 387
16.12.1 成績信息查詢模組概述 387
16.12.2 初始化考試類別和科目列表 387
16.12.3 成績信息查詢功能的實現 388
溫故知新 390