PyQt5 快速開發與實戰

王碩,孫洋洋

  • 出版商: 電子工業
  • 出版日期: 2020-10-01
  • 定價: $768
  • 售價: 5.0$384
  • 語言: 簡體中文
  • 頁數: 549
  • 裝訂: 平裝
  • ISBN: 7121322919
  • ISBN-13: 9787121322914
  • 相關分類: Qt
  • 立即出貨

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

商品描述

本書既是介紹PyQt5的快速入門書籍,也是介紹PyQt5實戰應用的書籍。

PyQt5是對Qt所有類的Python封裝,即可以利用Qt的強大功能,也可以利用Python豐富的生態,同時能夠結合Python簡潔的語法進行操作,其結果就是使用PyQt5可以高效簡單地開發出自己想要的程序。

本書內容豐富,對PyQt5基礎知識的介紹比較全面,同時對新手使用PyQt5的一些重點難點都有專門的章節進行針對性分析,還重點介紹瞭如何把Python的一些重量級模塊(Pandas、Matplotlib和Plotly)嵌入到PyQt5中,從而極大地節約開發時間。最後,本書會給出一些綜合性較強的實戰案例,幫助讀者快速掌握PyQt5的實戰應用。總而言之,本書旨在幫助讀者以最短的時間掌握PyQt5的基礎知識並能夠實戰應用,希望本書對有Python程序開發需求的讀者有幫助。

作者簡介

王碩,從事過7年的Java應用開發,3年的Python開發,目前擔任電信資深軟件工程師,擁有豐富的Web開發經驗,熱愛並長期專注於Python技術的研究,現從事Java和Python相關工作,擁有豐富的Java和Python等開發經驗。從事過的項目: 清華同方威視股份有限公司新加坡移民局安檢系統中國銀行軟件開發中心中國銀行客戶體驗系統-BOCUE 北京CSC公司永城保險財務收付系統。

目錄大綱

第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