PyQt6開發及實例 ( 簡體 字) |
作者:鄭阿奇,鄭進 | 類別:1. -> 作業系統 -> Linux -> QT 2. -> 程式設計 -> Python |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 56335 詢問書籍請說出此書號!【有庫存】 NT售價: 490 元 |
出版日:5/1/2023 |
頁數:460 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121455902 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Python為目前最受歡迎的開源編程語言之一,目前最新的大版本是Python 3,小版本則不斷更新,但Python自帶的GUI庫相對較弱,用它開發出合格的應用產品并不現實。Qt是目前流行的基于C++開源的編程環境和功能強大、使用方便的開發環境,PyQt是對Qt C++圖形界面庫的完全封裝,幾乎囊括了Qt所有的功能,利用PyQt能輕松開發出專業的圖形界面,因此其成為了目前Python應用系統界面開發的首選。其流行版本包括PyQt4、PyQt5和PyQt6,PyQt6是最新版本。
PyQt6是由Riverbank Computing公司開發的基于Python的一系列多平臺的工具包,可以在UNIX、Windows和Mac OS主流操作系統上運行。PyQt6有兩個許可證,開發人員可以在GPL和商業許可之間進行選擇。
PyQt6是Python應用開發的首選平臺,雖然功能強大,但國內能夠查到的資料卻非常少,出版的技術書籍至今還沒有。編者根據PyQt6應用實踐及在Qt6和Python3教程開發中積累的經驗,及時地推出本書,以方便讀者學習。
一、內容安排
本書各章的主要知識點如下。
(1)第1章介紹一個簡單實例,讓讀者熟悉在Python自帶IDLE環境下用PyQt6開發GUI應用程序的入門知識,同時初步熟悉PyQt6的兩種界面開發方式,最后介紹流行的PyCharm開發平臺。
(2)第2章介紹通用窗口、對話框(包括子類控件)和主窗口的屬性(界面選擇和代碼設置)、方法、事件、信號和槽,為后面章節內容的學習打好基礎。
(3)第3∼9章包括布局管理、常用控件、容器布局、菜單欄、工具欄、狀態欄、表格、樹、拖曳與剪貼、繪圖、二維及三維圖表、定時器、線程和網頁交互。
(4)第10章開發文檔分析器。這是一個典型的PyQt多文檔應用程序,用樹狀視圖對本地計算機操作系統的文件進行導航和分類,再調用各種流行的Python庫實現對文檔的分析,如pyttsx3朗讀文字、jieba實現分詞、wordcloud生成詞云、爬蟲beautifulsoup4模塊獲取網頁主題鏈接、Tesseract庫識別掃描書頁中的文字等。
(5)第11章開發網上商城。這是一個典型的PyQt多窗口應用程序,對系統諸多應用功能采用了分包與模塊化開發方法,商城銷售數據存儲于Excel(openpyxl操作),界面顯示采用“模型-視圖”機制,并運用QtCharts繪制精美的銷售分析圖表。
(6)第12章開發我的美圖。這是參考Photoshop、美圖秀秀功能的圖像處理軟件,綜合運用PIL庫的圖像處理技術,實現圖像模式轉換、像素增強與濾波、多圖合成、區域裁剪、重設比例、加水印等功能,還用OpenCV技術識別圖片中的人臉,實現對面部模糊/清晰化處理、素描輪廓、呈現浮雕狀和打馬賽克等特效。
(7)第13章開發我的繪圖板。基于PyQt的GraphicsView圖形系統和鼠標事件響應系統,構建了一個方便的繪圖軟件。用戶可拖曳工具箱按鈕向場景中任意放置圖形、拖曳調整大小、改變線型和填充色,繪制完成的畫面以圖元對象的形式保存為二進制文件,可再次打開和編輯。
(8)第14章開發簡版微信。本例模仿微信電腦版桌面客戶端,用GraphicsView圖形系統實現微信的聊天界面和功能。使用的主要技術包括PyQt6網絡模塊QtNetwork以解決點對點消息通信問題、MongoDB轉存聊天消息和資源、SQLite保存本地聊天歷史記錄。此外,本書還使用threading線程、PyAudio和wave模塊實現語音聊天,以及TCP實時語音通話等功能。
(9)第15章開發簡版抖音。這是一個自制的短視頻軟件,以實現抖音的基本功能,將視頻作為GraphicsView圖元處理,用PyQt6的QMediaPlayer實時播放;Qt定時器顯示視頻彈幕;結合PIL與OpenCV對要發布的視頻進行編輯;視頻錄制采用QCamera/ QMediaRecorder/QMediaCaptureSession;采用moviepy給視頻加背景音樂。用戶上傳的內容存儲于后臺MySQL數據庫,其中存儲了longblob類型的視頻、blob類型的圖片、集合set類型表示關注的視頻作者、json類型表示用戶偏好,軟件可自動根據用戶喜好推薦對應類別下的視頻內容。
二、本書主要特點
(1)界面兼顧代碼設計和工具設計,以代碼設計為主。基礎部分在窗口、布局管理章節介紹工具設計和代碼設計。開發及實例部分的一般界面采用工具設計,功能實現采用代碼設計,與實際應用開發方式相同。
(2)基礎部分所有實例均采用代碼設計,以方便讀者學習、打牢基礎。基礎部分中的每個實例盡可能包含基本控件功能,方便相互配合,提高代碼的效率。
(3)開發及實例部分側重于綜合應用,每一個實例經過精心考慮,盡可能合理分配重要知識點和應用模塊庫,使其既體現主要知識的綜合,又是一個簡化的流行應用。
(4)實例沒有嚴格的學習順序,讀者可以根據需要選擇。
(5)PyQt6與Python內容有機融合,有利于讀者學習。
三、本書網絡資源
(1)基礎部分標注“例xxxx.py”的源代碼程序均調試通過,運行結果與書中內容相同。
(2)每一章均配有學習課件,以方便讀者學習,以及教學和培訓。
(3)所有實例的工程文件包都包含資源文件,以方便讀者學習。
(4)本書提供對應內容的二維碼,通過掃描二維碼,可以瀏覽文檔內容。
本書配套資源可通過電子工業出版社華信教育資源網免費下載。
本書由鄭阿奇(南京師范大學)主編,部分同志參加了編寫和實例開發等工作,在此一并表示感謝!
由于編者水平有限,疏漏和錯誤在所難免,敬請廣大師生、讀者批評指正,意見和建議可反饋至編者電子郵箱。 |
內容簡介:PyQt6是Python應用開發的首選平臺,本書包括PyQt6基礎和PyQt6開發及實例兩部分。PyQt6基礎部分通過一個簡單實例初步熟悉PyQt6的兩種界面開發方式,然后介紹通用窗口、對話框(包括子類控件)和主窗口屬性、方法、事件、信號和槽,在此基礎上介紹布局管理、常用控件、容器布局、菜單欄、工具欄、狀態欄、表格、樹、拖曳與剪貼、繪圖、二維及三維圖表、定時器、線程和網頁交互等。PyQt6開發及實例部分包括文檔分析器、網上商城、我的美圖、我的繪圖板、簡版微信和簡版抖音。本書內容兼顧代碼設計和工具設計,以代碼設計為主。PyQt6基礎部分所有實例均采用代碼設計,PyQt6開發及實例部分一般界面采用工具設計,功能實現采用代碼設計,與實際應用開發方式相同。實例側重于綜合應用,每一個實例都經過精心考慮,盡可能合理分配重要知識點和應用模塊庫,使其既體現主要知識的綜合,又是一個簡化的流行應用。實例沒有嚴格的學習順序,讀者可以根據需要選擇。本書網絡資源包括源代碼、學習課件、所有實例的工程文件包和對應的二維碼文檔,讀者可通過電子工業出版社華信教育資源網免費下載。本書可作為PyQt6和Python學習與應用開發的參考書,也可作為教學參考書。 |
目錄:第1章 PyQt6圖形界面程序設計入門 1
1.1 第一個實例:采用代碼計算圓面積 1
1.1.1 創建窗口 2
1.1.2 計算圓面積 3
1.2 第二個實例:采用設計器計算圓面積 7
1.2.1 工具的安裝 7
1.2.2 界面開發 7
1.2.3 功能開發 13
1.3 PyQt6集成開發環境搭建 15
1.3.1 安裝及配置PyCharm 15
1.3.2 PyCharm整合PyQt6界面設計工具 19
第2章 窗口 22
2.1 PyQt6窗口和應用程序 22
2.1.1 PyQt6界面設計環境:Qt Designer 22
2.1.2 應用程序類:QApplication 23
2.2 通用窗口QWidget 23
2.2.1 坐標系統和類 23
2.2.2 常用屬性 25
2.2.3 事件 32
2.2.4 信號/槽 37
2.2.5 通用窗口實例 40
2.3 對話框QDialog 42
2.3.1 對話框屬性 42
2.3.2 對話框實例 43
2.3.3 對話框子類控件 44
2.4 主窗口QMainWindow 53
2.4.1 主窗口屬性 53
2.4.2 主窗口舉例 55
第3章 布局管理 57
3.1 設計器中的控件對象布局 57
3.1.1 使用布局管理器布局 57
3.1.2 使用容器進行布局 59
3.1.3 彈性間隔控件布局 59
3.2 通過代碼進行控件對象布局 61
3.2.1 布局方式 61
3.2.2 布局嵌套 66
3.2.3 其他布局方法 69
第4章 控件功能 71
4.1 控件及其繼承類 71
4.1.1 控件分類 71
4.1.2 控件及其屬性列表 71
4.1.3 控件類和繼承類 72
4.2 常用控件 73
4.2.1 標簽:Label 73
4.2.2 單行文本框:QLineEdit 76
4.2.3 多行文本框:QTextEdit 82
4.2.4 命令按鈕:QPushButton 84
4.2.5 單選按鈕:QRadioButton 86
4.2.6 復選框:QCheckBox 88
4.2.7 列表框:QListView 和QListWidget 89
4.2.8 下拉列表框:QComboBox 94
4.2.9 計數器:QSpinBox和 QDoubleSpinBox 96
4.2.10 日歷:QCalendar 98
4.2.11 日期時間:QDateTimeEdit 100
4.3 滑動條、進度條、滾動條和旋鈕控件 102
4.3.1 滑動條:QSlider 102
4.3.2 進度條:QProgressBar 104
4.3.3 滾動條:QScrollBar 106
4.3.4 旋鈕:QDial 108
第5章 容器布局 110
5.1 控件容器布局 110
5.1.1 框架:QFrame 110
5.1.2 分組框:QGroupBox 113
5.1.3 選項卡:QTabWidget 115
5.2 窗口布局 118
5.2.1 堆棧窗口:QStackedWidget 118
5.2.2 停靠:QDockWidget 120
5.2.3 多文檔界面:MDI 124
5.2.4 工具盒:ToolBox 127
第6章 菜單欄、工具欄和狀態欄 130
6.1 菜單欄 130
6.1.1 菜單欄:QMenuBar類 130
6.1.2 菜單欄菜單:QMenu 131
6.1.3 動作對象:QAction 131
6.2 工具欄:QToolBar 136
6.3 狀態欄:QStatusBar 138
6.4 主窗口綜合測試實例 140
6.5 用Qt Designer設計菜單與工具欄 142
6.5.1 菜單項與QAction的創建 142
6.5.2 QAction的設計 144
6.5.3 添加工具欄與QAction 144
第7章 表格、樹、拖曳與剪貼板 147
7.1 表格 147
7.1.1 表格:QTableView 147
7.1.2 表格:QTableWidget 149
7.2 樹 159
7.2.1 樹:QTreeView 159
7.2.2 樹:QTreeWidget 163
7.3 拖曳與剪貼板 169
7.3.1 拖曳:Drag與Drop 169
7.3.2 剪貼板:QClipboard 171
第8章 繪圖、二維及三維圖表 174
8.1 基本圖形繪制 174
8.1.1 繪圖基礎類 174
8.1.2 繪圖方法 178
8.1.3 路徑繪圖 185
8.2 二維圖表繪制 187
8.2.1 QtCharts基礎 187
8.2.2 繪制函數曲線 189
8.2.3 繪制柱狀/折線圖 192
8.2.4 繪制餅狀圖 194
8.2.5 matplotlib繪圖 196
8.3 三維圖表繪制 197
8.3.1 QtDataVisualization基礎 197
8.3.2 三維繪圖實例 199
第9章 定時器、線程和網頁交互 203
9.1 定時器和線程 203
9.1.1 定時器:QTimer 203
9.1.2 線程:QThread 204
9.2 網頁交互 206
9.2.1 顯示指定地址的網頁 207
9.2.2 嵌入網頁的HTML代碼 208
9.2.3 嵌入網頁的JavaSciprt代碼 209
第10章 PyQt6開發實例:文檔分析器 212
【技術基礎】 212
【實例開發】 213
10.1 創建項目 213
10.1.1 項目結構 213
10.1.2 界面設計 213
10.1.3 主程序框架 216
10.2 文檔的管理 218
10.2.1 目錄導航 218
10.2.2 文檔歸類 219
10.2.3 打開文檔 221
10.2.4 多文檔窗口布局 222
10.3 文檔的分析 224
10.3.1 文本文字的分析 225
10.3.2 獲取網頁主題鏈接 229
10.3.3 識別掃描書頁文字 231
10.3.4 分析結果處理 235
10.4 其他功能 235
第11章 PyQt6開發及實例:網上商城 237
【技術基礎】 237
【實例開發】 238
11.1 創建項目 238
11.1.1 數據準備 238
11.1.2 初步了解項目結構 239
11.2 功能導航模塊 240
11.2.1 界面設計 240
11.2.2 功能開發 241
11.3 商品選購模塊 242
11.3.1 界面設計 243
11.3.2 程序框架 244
11.3.3 功能開發 246
11.3.4 數據演示 250
11.4 下單結算模塊 251
11.4.1 界面設計 251
11.4.2 程序框架 253
11.4.3 功能開發 254
11.4.4 數據演示 261
11.5 銷售分析模塊 262
11.5.1 界面設計 263
11.5.2 程序框架 264
11.5.3 功能開發 265
第12章 PyQt6開發及實例:我的美圖 271
【技術基礎】 271
12.1 PIL圖像處理技術 271
12.1.1 圖像載入(打開)與顯示 272
12.1.2 基礎處理 272
12.1.3 高級處理 274
12.2 用到的其他控件和技術 276
【實例開發】 276
12.3 創建項目 276
12.3.1 項目結構 276
12.3.2 界面創建 277
12.3.3 主程序框架 278
12.4 圖片打開、顯示和保存 280
12.4.1 圖片打開和保存 281
12.4.2 圖片自適應顯示 282
12.5 圖片區域選擇與操作 283
12.5.1 區域形狀設置 284
12.5.2 區域選擇 286
12.5.3 區域操作 288
12.6 圖像變換 291
12.6.1 轉換顯示模式 292
12.6.2 調整寬高像素比 293
12.6.3 鏡像、旋轉和縮放 295
12.6.4 圖像加水印文字 296
12.7 圖像美化 298
12.7.1 圖像增強 299
12.7.2 圖像合成 305
12.7.3 人臉識別與處理 308
第13章 PyQt6開發及實例:我的繪圖板 312
【技術基礎】 312
13.1 繪圖相關技術 312
13.2 繪圖場景數據結構 313
13.2.1 數據結構設計 313
13.2.2 數據結構處理 315
【實例開發】 316
13.3 創建項目 316
13.3.1 項目結構 316
13.3.2 主程序框架 317
13.4 主界面開發 318
13.4.1 界面設計 318
13.4.2 文件管理欄開發 320
13.4.3 樣式欄開發 321
13.4.4 工具箱開發 325
13.4.5 繪圖區和狀態欄開發 326
13.5 繪圖功能開發 328
13.5.1 創建圖元 328
13.5.2 調整圖元大小 333
13.5.3 設置樣式 336
13.5.4 操縱圖元 342
13.6 圖元文件管理 343
第14章 PyQt6開發及實例:簡版微信 349
【技術基礎】 350
14.1 網絡通信 350
14.1.1 基于UDP的數據通信 350
14.1.2 基于TCP的字節傳輸 353
14.2 MongoDB數據庫 356
14.2.1 安裝MongoDB 356
14.2.2 創建數據庫MyWeDb 357
14.2.3 數據庫訪問與操作 357
14.3 SQLite應用 360
14.3.1 訪問SQLite 361
14.3.3 記錄日志 361
14.3.4 加載日志 362
14.4 用到的其他控件和技術 363
【實例開發】 363
14.5 創建項目 363
14.5.1 客戶端項目 363
14.5.2 服務器項目 366
14.6 界面開發 368
14.6.1 界面設計 368
14.6.2 初始化 371
14.6.3 界面切換 372
14.7 微信基本功能開發 374
14.7.1 用戶管理 374
14.7.2 文字聊天 377
14.7.3 信息暫存與轉發 381
14.8 微信增強功能的開發 382
14.8.1 功能演示 383
14.8.2 文件、圖片、語音的傳輸 385
14.8.3 實時語音通話 396
第15章 PyQt6開發及實例:簡版抖音 401
【技術基礎】 401
15.1 視頻播放處理 401
15.2 MySQL數據庫 402
15.2.1 設計數據庫MyTikTok 402
15.2.2 數據庫訪問與操作 404
15.2.3 讀寫特殊數據類型 405
【實例開發】 405
15.3 創建項目 405
15.3.1 項目結構 405
15.3.2 主程序框架 406
15.4 主界面開發 407
15.4.1 界面設計 407
15.4.2 初始化 410
15.4.3 運行效果 411
15.5 視頻基本功能開發 411
15.5.1 視頻播放 411
15.5.2 視頻控制 415
15.5.3 視頻信息顯示 416
15.6 特色功能開發 418
15.6.1 關注和點贊 418
15.6.2 評論與彈幕 422
15.6.3 根據用戶喜好推薦視頻 425
15.7 視頻錄制、編輯與發布 427
15.7.1 視頻錄制 427
15.7.2 視頻編輯與發布 430
附錄 PyQt6項目工程打包 442 |
序: |