《PyQt5快速開發與實戰》是介紹PyQt 5理論與實戰的前沿書籍,即係統化地介紹Qt的基礎知識,又兼顧Python的各種強大模塊,同時包含豐富的項目實戰。旨在幫助讀者快速掌握PyQt 5的應用知識,是Python程序開發的利器。
本書既是介紹PyQt5的快速入門書籍,也是介紹PyQt5實戰應用的書籍。PyQt5是對Qt所有類的Python封裝,即可以利用Qt的強大功能,也可以利用Python豐富的生態,同時能夠結合Python簡潔的語法進行操作,其結果就是使用PyQt5可以高效簡單地開發出自己想要的程序。本書內容豐富,對PyQt5基礎知識的介紹比較全面,同時對新手使用PyQt5的一些重點難點都有專門的章節進行針對性分析,還重點介紹了如何把Python的一些重量級模塊(Pandas、Matplotlib和Plotly)嵌入到PyQt5中,從而極大地節約開發時間。最後,本書會給出一些綜合性較強的實戰案例,幫助讀者快速掌握PyQt5的實戰應用。總而言之,本書旨在幫助讀者以最短的時間掌握PyQt5的基礎知識並能夠實戰應用,希望本書對有Python程序開發需求的讀者有幫助。
王碩
網名信平,北京鼎鑫拓達資深軟件工程師,具有8年的Java企業應用開發經驗和3年教育培訓經驗。曾主持多個B/S項目的開發,經驗豐富。擅長J2EE(JSP/Servlet、 JDBC、Struts2、Spring、Hibernate)項目開發、Python(程序GUI、數據分析、網絡爬蟲、機器學習)項目開發,JavaScript、HTML 5和數據庫技術,是極寬Top開源團隊核心成員。
孫洋洋
現就職於一家資產管理公司,負責公司量化投研系統的開發與維護,有多家券商工作與實習經驗。擅長網絡爬蟲、機器學習、程序GUI開發與設計,對量化投資領域興趣濃厚,有多年量化投資實盤操作經驗,是極寬Top開源團隊核心成員。
本書是作者集數年編程開發於大成的一份心血之作,他從簡單實用的系統架構視角將我們帶入一個全新開發的思維模式,此書是使用PyQt的佳作,有大量的開發技巧,還匯集了豐富的操作案例,可作為新手上路的必備實操手冊,本人讀後也獲益匪淺。
——北京信平科技有限公司總經理王祥平
一本可以從入門到實戰、系統學習PyQt 5的好書,是PyQt 5學習者的優選教材。
——潭州教育Python學院院長李天強
本書詳細介紹了PyQt的基礎知識,又兼顧了PyQt的實戰應用。並且在擴展應用中介紹的幾個模塊如QtPandas、Matplotlib、PyQtGrapth、Plotly等,很好地解決了Python在金融領域甚至量化投資領域界面呈現的難點問題,對要做量化投資界面開發的讀者來說,本書非常值得推薦。
——中國量化投資學會理事長丁鵬
Python是一門應用廣泛的腳本語言,為了創建圖形用戶界面,PyQt是Python工程師選擇的重要工具之一。作者編寫的此書涵蓋了PyQt 5的基礎知識和高級應用,體現了技術與理論的完美結合,是Python工程師編程的必備手冊。
——梁忠博士
目錄
第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
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。