《PyQt編程快速上手》是2023年人民郵電出版社出版的圖書,作者是任路順。
基本介紹
- 中文名:PyQt編程快速上手
- 作者:任路順
- 出版時間:2023年4月
- 出版社:人民郵電出版社
- ISBN:9787115608666
- 開本:16 開
- 裝幀:平裝
內容簡介,作者簡介,圖書目錄,
內容簡介
PyQt是一個創建GUI應用程式的工具包,是Python程式語言和Qt庫的成功融合。本書旨在通過深入淺出的講解和簡明的程式示例教讀者掌握PyQt的開發技巧。
本書分為10章,從PyQt的安裝和基礎知識講起,陸續介紹了基礎控制項(如標籤控制項、訊息框、文本框、按鈕及控制項等)、高級控制項(如組合框、滾動條、容器控制項及各類視圖等)、視窗(如屬性、坐標、事件等)、Qt Designer(如安裝與配置、編輯模式等)、PyQt高級套用(如資料庫、多執行緒、動畫、音視頻、網頁互動等)、圖形視圖框架(如圖元、場景、視圖、事件傳遞等)、打包(如PyInstaller、Nuitka等)等內容。此外,本書還通過兩個開發實例(可視化爬蟲軟體和《經典貪吃蛇》遊戲)帶領讀者鞏固了書中介紹的相關知識點。
本書內容簡潔實用、實操性強,適合對Python編程及GUI開發感興趣的讀者閱讀。
作者簡介
任路順,一名熱愛代碼的開源開發者,也是開源軟體 Qt Box 的作者。他擁有多年Python/C++ 開發經驗,專注於軟體開發,也喜歡研究爬蟲、機器學習等技術,業餘時間喜歡開發一些小遊戲。他在CSDN和知乎平台上發布的《快速掌握 PyQt5》《樹莓派項目實戰》《PyInstaller 打包實戰指南》等專欄受到讀者的廣泛好評。
圖書目錄
第 1章 PyQt基礎知識 1
1.1 安裝PyQt 1
1.1.1 在不同系統上安裝 1
1.1.2 驗證安裝是否成功 3
1.2 設計一個簡單的PyQt視窗 3
1.2.1 程式入口 3
1.2.2 在PyQt程式中嵌入HTML代碼 4
1.2.3 在類中創建視窗 5
1.3 布局管理 6
1.3.1 使用move()方法布局 7
1.3.2 垂直布局管理器QVBoxLayout 8
1.3.3 水平布局管理器QHBoxLayout 9
1.3.4 表單布局管理器QFormLayout 10
1.3.5 格線布局管理器QGridLayout 11
1.3.6 布局嵌套 12
1.4 信號和槽 13
1.4.1 理解信號和槽機制 13
1.4.2 一個信號連線一個槽 14
1.4.3 一個信號連線多個槽 17
1.4.4 多個信號連線一個槽 18
1.4.5 信號與信號連線 19
1.4.6 自定義信號 20
1.5 學會使用文檔 22
1.5.1 理解文檔上的C++代碼 22
1.5.2 如何使用文檔 23
1.6 本章小結 25
第 2章 PyQt的基礎控制項 26
2.1 標籤控制項QLabel 26
2.1.1 顯示文本 26
2.1.2 顯示圖片 27
2.1.3 顯示動圖 28
2.2 訊息框控制項QMessageBox 30
2.2.1 各種類型的訊息框 30
2.2.2 與訊息框互動 32
2.2.3 編寫帶中文按鈕的訊息框 33
2.3 文本框控制項 34
2.3.1 單行文本框控制項QLineEdit 34
2.3.2 文本編輯框控制項QTextEdit 36
2.3.3 文本瀏覽框控制項QTextBrowser 38
2.4 各種按鈕控制項 39
2.4.1 普通按鈕控制項QPushButton 39
2.4.2 工具按鈕控制項QToolButton 40
2.4.3 單選框按鈕控制項QRadioButton 41
2.4.4 複選框按鈕控制項QCheckBox 42
2.4.5 下拉框按鈕控制項QComboBox 43
2.5 與數字相關的控制項 45
2.5.1 液晶數字控制項QLCDNumber 45
2.5.2 數字調節框控制項QSpinBox和QDoubleSpinBox 46
2.5.3 滑動條控制項QSlider 47
2.5.4 儀錶盤控制項QDial 48
2.6 與日期相關的控制項 49
2.6.1 日曆控制項QCalendarWidget 49
2.6.2 日期時間控制項QDateTimeEdit 51
2.7 定時器控制項和進度條控制項 53
2.7.1 定時器控制項QTimer 53
2.7.2 進度條控制項QProgressBar 54
2.8 本章小結 55
第3章 PyQt的高級控制項 56
3.1 組合框控制項和工具箱控制項 56
3.1.1 分組框控制項QGroupBox 56
3.1.2 工具箱控制項QToolBox 57
3.2 滾動區域控制項和滾動條控制項 59
3.2.1 滾動區域控制項QScrollArea 59
3.2.2 滾動條控制項QScrollBar 61
3.3 更多容器控制項 63
3.3.1 拆分視窗控制項QSplitter 63
3.3.2 標籤頁控制項QTabWidget 64
3.3.3 堆疊控制項QStackedWidget 66
3.3.4 多文檔區域控制項QMdiArea 67
3.4 列表視圖控制項、樹形視圖控制項、表格視圖控制項 69
3.4.1 列表視圖控制項QListView 70
3.4.2 樹形視圖控制項QTreeView 72
3.4.3 表格視圖控制項QTableView 73
3.5 簡化版的列表、樹形、表格視圖控制項 75
3.5.1 簡化版列表視圖控制項QListWidget 75
3.5.2 簡化版樹形視圖控制項QTreeWidget 76
3.5.3 簡化版表格視圖控制項QTableWidget 78
3.6 各種對話框控制項 79
3.6.1 顏色對話框控制項QColorDialog 79
3.6.2 字型對話框控制項QFontDialog 81
3.6.3 輸入對話框控制項QInputDialog 82
3.6.4 檔案對話框控制項QFileDialog 84
3.7 本章小結 86
第4章 深入視窗 87
4.1 視窗屬性 87
4.1.1 視窗標題和圖示 88
4.1.2 視窗大小和位置 88
4.1.3 其他視窗屬性 91
4.2 視窗坐標 93
4.2.1 理解坐標體系 93
4.2.2 視窗的組成部分 94
4.3 視窗事件 95
4.3.1 視窗關閉事件 95
4.3.2 視窗大小調整事件 96
4.3.3 鍵盤事件 97
4.3.4 滑鼠事件 98
4.3.5 拖放事件 100
4.3.6 繪製事件 102
4.4 主視窗類QMainWindow 103
4.4.1 主視窗的組成部分 103
4.4.2 停靠視窗類QDockWidget 105
4.4.3 選單欄類QMenuBar 107
4.4.4 工具列類QToolBar 108
4.4.5 狀態欄類QStatusBar 110
4.4.6 程式啟動畫面類QSplashScreen 112
4.5 本章小結 113
第5章 Qt Designer 114
5.1 安裝與配置 114
5.1.1 在Windows系統上安裝 114
5.1.2 在macOS系統上安裝 115
5.1.3 在Ubuntu系統上安裝 115
5.1.4 在PyCharm中配置設計師 116
5.2 了解設計師視窗中的各個部分 117
5.2.1 控制項箱 118
5.2.2 對象查看器 118
5.2.3 屬性編輯器 119
5.2.4 選單欄和工具列 119
5.3 4種編輯模式 121
5.3.1 布局模式 121
5.3.2 編輯信號和槽模式 123
5.3.3 編輯夥伴關係模式 125
5.3.4 編輯Tab順序模式 126
5.4 登錄框開發實戰 127
5.4.1 編輯屬性 127
5.4.2 布局控制項 129
5.4.3 將.ui檔案轉換成.py檔案 130
5.4.4 編寫功能邏輯代碼 130
5.5 本章小結 131
第6章 PyQt高級套用 132
6.1 資料庫 132
6.1.1 資料庫連線和關閉 133
6.1.2 執行SQL語句 134
6.1.3 資料庫模型 136
6.2 多執行緒 139
6.2.1 使用QThread執行緒類 140
6.2.2 線上程中獲取視窗數據信息 143
6.2.3 編寫一個簡單的爬蟲程式 144
6.3 繪圖與列印 146
6.3.1 畫筆類QPen 146
6.3.2 畫刷類QBrush 149
6.3.3 用滑鼠在視窗上繪製矩形 150
6.3.4 列印 153
6.4 動畫 155
6.4.1 屬性動畫類QPropertyAnimation 155
6.4.2 串列動畫組類QSequentialAnimationGroup 158
6.4.3 並行動畫組類QParallelAnimationGroup 160
6.4.4 時間軸類QTimeLine 162
6.5 音頻和視頻 164
6.5.1 聲音類QSound 164
6.5.2 音效類QSoundEffect 165
6.5.3 媒體播放機類QMediaPlayer 166
6.6 網頁互動 170
6.6.1 了解QWebEngineView 170
6.6.2 製作一款簡單的瀏覽器 172
6.7 網路套用 175
6.7.1 QUdpSocket 175
6.7.2 QTcpSocket和QTcpServer 180
6.8 QSS 183
6.8.1 安裝QSS高亮外掛程式 185
6.8.2 基本規則 185
6.8.3 選擇器的類型 187
6.8.4 子控制器 189
6.8.5 偽狀態 190
6.8.6 QSS第三方庫 191
6.9 國際化 193
6.9.1 使用translate()方法 193
6.9.2 製作.ts檔案 194
6.9.3 使用Qt Linguist 196
6.9.4 實現語言切換功能 198
6.10 本章小結 199
第7章 圖形視圖框架 200
7.1 圖形圖元類QGraphicsItem 200
7.1.1 標準圖元 200
7.1.2 圖元層級 203
7.1.3 圖元變換 205
7.1.4 圖元分組 206
7.1.5 碰撞檢測 208
7.1.6 給圖元添加信號和動畫 209
7.2 圖形場景類QGraphicsScene 211
7.2.1 管理圖元 211
7.2.2 嵌入控制項 212
7.3 圖形視圖類QGraphicsView 214
7.3.1 視圖和場景的大小關係 215
7.3.2 視圖變換 216
7.4 事件傳遞與坐標轉換 217
7.4.1 事件傳遞順序 217
7.4.2 坐標轉換 219
7.5 本章小結 221
第8章 打包 222
8.1 PyInstaller 222
8.1.1 環境配置 222
8.1.2 兩種打包模式 223
8.1.3 黑框的調試作用 225
8.1.4 給執行檔加上圖示 226
8.1.5 打包資源檔案 226
8.1.6 減小打包後的檔案大小 228
8.1.7 其他常用的命令 230
8.1.8 用PyInstaller打包用PyQt開發的程式 232
8.2 Nuitka 234
8.2.1 環境配置 234
8.2.2 兩種打包模式 237
8.2.3 給執行檔加上圖示 239
8.2.4 打包資源檔案 240
8.2.5 啟用外掛程式 242
8.2.6 減小打包檔案的大小 243
8.2.7 其他常用的命令 244
8.2.8 用Nuitka打包用PyQt開發的程式 246
8.3 本章小結 247
第9章 開發可視化爬蟲軟體 248
9.1 實現爬蟲功能 249
9.1.1 分析目標網站 249
9.1.2 編寫爬蟲代碼 250
9.2 將爬蟲與界面結合 252
9.2.1 完成界面布局 252
9.2.2 編寫爬蟲執行緒 254
9.2.3 在界面上顯示爬取數據和日誌 257
9.2.4 實現保存功能 259
9.3 音效與美化 262
9.3.1 添加音效 262
9.3.2 美化界面 263
9.4 打包 264
9.4.1 用PyInstaller打包 264
9.4.2 用Nuitka打包 265
9.5 本章小結 266
第 10章 開發《經典貪吃蛇》遊戲 267
10.1 編寫遊戲場景 268
10.1.1 繪製背景和貪吃蛇圖示 269
10.1.2 繪製分數 270
10.1.3 繪製可移動區域和框線 271
10.1.4 繪製“暫停”和“繼續”按鈕 272
10.1.5 繪製遊戲失敗提示 274
10.1.6 在視圖視窗中顯示場景 275
10.2 加入食物和貪吃蛇 277
10.2.1 在場景中添加食物 277
10.2.2 在場景中添加貪吃蛇 279
10.2.3 如何讓貪吃蛇動起來 283
10.3 實現剩餘的遊戲邏輯 284
10.3.1 用方向鍵控制貪吃蛇 284
10.3.2 重新開始、暫停和繼續 286
10.3.3 播放音頻 287
10.4 打包 289
10.4.1 用PyInstaller打包 289
10.4.2 用Nuitka打包 290
10.5 本章小結 291