✤ 本書結構
本書共9 章,包含PySide 6 / PyQt 6 常用知識及一些經典的應用。每章的側重點不同,並且相對獨立,讀者根據目錄即可獲取自己所需的內容。
第1 章介紹PySide / PyQt 的入門知識,主要介紹PySide 和PyQt 的基本概念、PySide 6 / PyQt 6 的安裝和使用(包括Qt Designer 等工具的初步用法)、常見IDE(PyCharm、VSCode、Eric 7)的安裝、設定與使用。已經有一定基礎的讀者可以略過本章。
第2章介紹Qt Designer 的詳細用法。Qt Designer 是PySide / PyQt的視覺化介面編輯程式,透過拖曳滑鼠等視覺化操作就可以快速開發出GUI 檔案(*.ui 檔案),可以透過官方提供的uic 工具把.ui 檔案自動轉為.py 檔案。本章介紹了PySide / PyQt 程式開發流程,如版面配置管理、訊號與槽連結、功能表列與工具列、增加與轉換資源檔等。對PySide / PyQt 初學者來說,這些是實現快速入門和快速進步的重要內容。第3 章和第4章介紹PySide / PyQt的基本視窗控制項的使用方法。第1章介紹了PySide / PyQt 的環境設定,第2章介紹了PySide / PyQt 完整的開發流程,接下來讀者最想知道的是PySide / PyQt 有哪些常用控制項和如何使用這些控制項,這就是第3章和第4章要解決的問題。
第5章介紹PySide / PyQt的特殊控制項——表格與樹。本章主要介紹表格與樹的用法,入門非常簡單。如果想要更進一步,還需要理解Model / View / Delegate(模型 / 視圖 / 委託)框架,這也是表格與樹的特殊之處。此外,資料量較大的表格往往需要資料庫的支撐,所以本章會涉及資料庫的相關內容。
第6 章介紹一些進階視窗控制項。本章主要介紹第3 ∼ 5 章沒有涉及的其他常用控制項或內容,這也是介紹控制項的最後一章。本章介紹的控制項相對進階一些,比較常用的是版面配置管理與多視窗控制項(容器)。本章還介紹了視窗風格、多執行緒、網頁互動、QSS 的UI 美化等內容,最後以Qt Quick(QML)收尾。
第7章介紹訊號 / 槽和事件。本章對PySide / PyQt 的進階內容進行收尾,是介紹PySide / PyQt 框架的最後一部分內容。前面幾章初步介紹了訊號 / 槽的使用方法,但不夠詳細,本章會對訊號 / 槽和事件進行系統性的介紹,如內建訊號 / 槽、自訂訊號 / 槽、裝飾器訊號 / 槽、訊號 / 槽的斷開與連接、多執行緒訊號 / 槽、事件處理的常用方法等。
第8章介紹Python的擴充應用。第1 ∼ 7章介紹的是PySide / PyQt框架的內容,本章介紹Python對PySide / PyQt 的擴充。學習PySide / PyQt 的一大好處是可以結合Python 生態提高開發效率。Python 生態非常多,本章只介紹部分常用生態,如PyInstaller、Pandas、Matplotlib、PyQtGraph 和Plotly 等,使用這些生態可以更快地開發出GUI 程式。
第9章介紹PySide / PyQt 的實戰應用。本章介紹了兩個應用供讀者參考,一個是在量化投資中的應用,另一個是在券商投資研發中的應用。
此外,本書的附錄內容也很重要。
附錄A介紹PySide / PyQt 各個版本之間相互轉換的問題,主要包括以下兩部分內容。
■■ PySide 6 / PyQt 6 之間的相互轉換。
■■ 將 PySide 2 / PyQt 5 轉為 PySide 6 / PyQt 6。
附錄B透過一個案例來分析如何把Qt 的C++ 程式碼轉為PySide /PyQt 的Python 程式碼。Qt 的生態比PySide / PyQt 更豐富一些,有時需要把Qt 的demo 轉換成PySide / PyQt 的demo,讀者可以參考這部分內容。
附錄C列舉一些常用表格目錄。本書將很多列舉、屬性和函式參數等的用法以表格的形式呈現,絕大部分表格可以根據目錄快速定位到,比較常用但又沒有辦法快速定位到的在這裡以表格形式列出。
附錄D列舉一些筆者了解的基於PySide / PyQt 的優秀開放原始碼專案。本書只會對這些專案進行簡單介紹,感興趣的讀者可自行研究。
Python精解實例:PySide 6/PyQt 6強大開發親身體驗
內容描述
目錄大綱
第1章 認識PySide 6 / PyQt 6
1.1 PySide 6 / PyQt 6框架簡介
1.2 架設PySide 6 / PyQt 6環境
1.3 PySide 6快捷工具簡介
1.4 常用IDE的安裝設定與使用
1.5 PySide / PyQt的啟動方式
第2章 Qt Designer的使用
2.1 Qt Designer快速入門
2.2 版面配置管理入門
2.3 Qt Designer實戰應用
2.4 訊號與槽連結
2.5 功能表列與工具列
2.6 增加圖片(資源檔)
第3章 基本視窗控制項(上)
3.1 主視窗(QmainWindow / QWidget / QDialog)
3.2 標籤(QLabel)
3.3 單行文字標籤(QLineEdit)
3.4 多行文字標籤(QtextEdit / QPlainTextEdit)
3.5 按鈕類別控制項
3.6 工具按鈕(QToolButton)
3.7 下拉式清單方塊(QComboBox)
3.8 微調框(QspinBox / QDoubleSpinBox)
3.9 日期時間控制項
3.10 滑動控制項
3.11 區域捲動(QScrollArea)
第4章 基本視窗控制項(下)
4.1 對話方塊類別控制項(QDialog族)
4.2 視窗繪圖類別控制項
4.3 拖曳與剪貼簿
4.4 功能表列、工具列、狀態列與快速鍵
4.5 其他控制項
第5章 表格與樹
5.1 QListWidget
5.2 QTableWidget
5.3 QTreeWidget
5.4 模型 / 視圖 / 委託框架
5.5 QListView
5.6 QTableView
5.7 QTreeView
5.8 自訂模型
5.9 自訂委託
5.10 Qt資料庫
第6章 高級視窗控制項
6.1 視窗風格
6.2 版面配置管理
6.3 容器:加載更多的控制項
6.4 多執行緒
6.5 網頁互動
6.6 QSS的UI美化
6.7 QML淺議
第7章 訊號 / 槽和事件
7.1 訊號與槽的簡介
7.2 訊號與槽的案例
7.3 訊號與槽的參數
7.4 基於Qt Designer的訊號與槽
7.5 事件處理機制
第8章 Python的擴充應用
8.1 使用PyInstaller打包專案生成.exe檔案
8.2 Pandas在PySide / PyQt中的應用
8.3 Matplotlib在PyQt中的應用
8.4 PyQtGraph在PyQt中的應用
8.5 Plotly在PyQt中的應用
第9章 實戰應用
9.1 在量化投資中的應用
9.2 在券商投資研發中的應用
附錄A Qt for Python程式轉換
附錄B C++ to Python程式轉換
附錄C 本書一些通用列舉表格目錄
附錄D 優秀PySide / PyQt開放原始碼專案推薦
作者介紹
作者簡介
孫洋洋
就職於國營保險公司資管部門,負責公司量化投研體系的開發與維護以及策略研發。熟悉多種程式設計語言,目前以Python為主。擅長量化投資與程式GUI開發、網路爬蟲、機器學習,在金融量化投資領域有多年工作經驗。
王碩
現從事Python,Go和Java的相關工作,熱愛並長期專注於前端開發,巨量資料和高性能計算技術的研究,積累了大量的一線開發經驗,具有豐富的工業級系統開發和運維實戰經驗。