PyQt 編程快速上手

任路順

  • 出版商: 人民郵電
  • 出版日期: 2023-04-01
  • 定價: $539
  • 售價: 8.5$458
  • 語言: 簡體中文
  • 頁數: 291
  • ISBN: 7115608660
  • ISBN-13: 9787115608666
  • 相關分類: Qt
  • 立即出貨

  • PyQt 編程快速上手-preview-1
  • PyQt 編程快速上手-preview-2
PyQt 編程快速上手-preview-1

買這商品的人也買了...

商品描述

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