內容簡介
原文書名:PyQt5快速开发与实战
中文書名:Python GUI程式設計:PyQt5實戰 暢銷回饋版
內容簡介
✤✤✤暢銷回饋版引言✤✤✤
為您的程式穿上美麗的新裝
自從本書上市以來銷售屢創佳績,畢竟為寫好的程式配上直觀好用且美觀的圖形化介面(GUI,Graphical User Interface),一直是所有程式設計師必要的需求。而書中含有大量繁體中文的視窗截圖,也方便讀者們按圖索驥,且所有程式碼都經由專業的審校老師親自執行驗證,只要直接引用或稍作修改,就能快速達到讀者們對圖形化介面的需求,同時也有助於提昇UX,難怪這段期間以來銷售成績一直持續亮眼。此次,為答謝讀者們對此書的愛好及肯定,特別在新春推出它的暢銷回饋版。想要快速讓自己的程式換上美麗的新裝嗎?拿起這本書,立即施展PyQt5的神奇魔法吧!
從入門到實作應用
帶領您走進圖形化介面的世界
PyQt是Python用來撰寫圖形化使用者介面(GUI)的解決方案,可以用來代替Python內建的Tkinter。Python可以說是世界上極為廣泛、也非常簡單的程式語言,Qt則是最好的開發程式庫之一,而Python與Qt結合的產物就是PyQt。
它既能利用Python強大又簡潔的語法,又不會失去Qt的強大功能。從Python的角度來說,凡是Python內含的所有簡潔、易用的語法,都可以應用至PyQt。從Qt的角度來看,以Qt開發出來的功能,在理論上改用PyQt也沒有問題。有些程式邏輯在Qt實作起來會比較複雜,但在PyQt卻很簡單,這才是PyQt最大的魅力之處。
此外,PyQt5與PyQt4並不相容。Qt開發團隊已經明確宣佈,從2015年開始就放棄Qt4(對應至PyQt4)的支援,因此,對於想要瞭解PyQt的朋友來說,一開始就學習PyQt5是一個最好的選擇。
*具備Python與PyQt的入門知識,即使初學者也能夠有所助益。
*摒棄已不再被支援的PyQt4,直接學習大幅改版後的PyQt5。
*介紹Qt Designer的用法,帶領您快速進入PyQt圖形化介面的世界。
*PyQt5的佈局管理、訊號與槽的應用、圖形和特效的美化技巧盡在本書。
*以實際案例,使讀者理解PyQt5在軟體專案和金融領域裡要如何應用。
中文書名:Python GUI程式設計:PyQt5實戰 暢銷回饋版
內容簡介
✤✤✤暢銷回饋版引言✤✤✤
為您的程式穿上美麗的新裝
自從本書上市以來銷售屢創佳績,畢竟為寫好的程式配上直觀好用且美觀的圖形化介面(GUI,Graphical User Interface),一直是所有程式設計師必要的需求。而書中含有大量繁體中文的視窗截圖,也方便讀者們按圖索驥,且所有程式碼都經由專業的審校老師親自執行驗證,只要直接引用或稍作修改,就能快速達到讀者們對圖形化介面的需求,同時也有助於提昇UX,難怪這段期間以來銷售成績一直持續亮眼。此次,為答謝讀者們對此書的愛好及肯定,特別在新春推出它的暢銷回饋版。想要快速讓自己的程式換上美麗的新裝嗎?拿起這本書,立即施展PyQt5的神奇魔法吧!
從入門到實作應用
帶領您走進圖形化介面的世界
PyQt是Python用來撰寫圖形化使用者介面(GUI)的解決方案,可以用來代替Python內建的Tkinter。Python可以說是世界上極為廣泛、也非常簡單的程式語言,Qt則是最好的開發程式庫之一,而Python與Qt結合的產物就是PyQt。
它既能利用Python強大又簡潔的語法,又不會失去Qt的強大功能。從Python的角度來說,凡是Python內含的所有簡潔、易用的語法,都可以應用至PyQt。從Qt的角度來看,以Qt開發出來的功能,在理論上改用PyQt也沒有問題。有些程式邏輯在Qt實作起來會比較複雜,但在PyQt卻很簡單,這才是PyQt最大的魅力之處。
此外,PyQt5與PyQt4並不相容。Qt開發團隊已經明確宣佈,從2015年開始就放棄Qt4(對應至PyQt4)的支援,因此,對於想要瞭解PyQt的朋友來說,一開始就學習PyQt5是一個最好的選擇。
*具備Python與PyQt的入門知識,即使初學者也能夠有所助益。
*摒棄已不再被支援的PyQt4,直接學習大幅改版後的PyQt5。
*介紹Qt Designer的用法,帶領您快速進入PyQt圖形化介面的世界。
*PyQt5的佈局管理、訊號與槽的應用、圖形和特效的美化技巧盡在本書。
*以實際案例,使讀者理解PyQt5在軟體專案和金融領域裡要如何應用。
作者簡介
作者簡介
王碩
網名信平,北京鼎鑫拓達資深軟體工程師,具有8年Java企業應用程式開發經驗和3年教育培訓經驗。曾主持多個B/S專案的開發,經驗豐富。擅長J2EE(JSP/Servlet、JDBC、Struts2、Spring、Hibernate)專案開發、Python(程式GUI、數據分析、網路爬蟲、機器學習)專案開發,JavaScript、HTML 5和資料庫技術,是極寬Top開源團隊的核心成員。
孫洋洋
目前就職於一家資產管理公司,負責公司量化投資研究系統的開發與維護,有多家券商工作與實習經驗。擅長網路爬蟲、機器學習、程式GUI開發與設計,對量化投資領域興趣濃厚,有多年量化投資實盤操作經驗,是極寬Top開源團隊的核心成員。
王碩
網名信平,北京鼎鑫拓達資深軟體工程師,具有8年Java企業應用程式開發經驗和3年教育培訓經驗。曾主持多個B/S專案的開發,經驗豐富。擅長J2EE(JSP/Servlet、JDBC、Struts2、Spring、Hibernate)專案開發、Python(程式GUI、數據分析、網路爬蟲、機器學習)專案開發,JavaScript、HTML 5和資料庫技術,是極寬Top開源團隊的核心成員。
孫洋洋
目前就職於一家資產管理公司,負責公司量化投資研究系統的開發與維護,有多家券商工作與實習經驗。擅長網路爬蟲、機器學習、程式GUI開發與設計,對量化投資領域興趣濃厚,有多年量化投資實盤操作經驗,是極寬Top開源團隊的核心成員。
內容目錄
目錄
Chapter 01 認識 PyQt5
1.1 PyQt 框架簡介
1.1.1 PyQt5 的特點
1.1.2 Qt 與PyQt 的關係
1.1.3 其他圖形介面開發程式庫介紹
1.1.4 PyQt4/PyQt5
1.1.5 Python 2/Python 3
1.2 PyQt5 環境建置
1.2.1 在 Windows 下建置 PyQt5 環境
1.2.2 PyQt5 的安裝測試
1.2.3 安裝其他 Python 模組
1.2.4 使用 PyQt5 的 API 文件
1.3 Eric 6 的安裝與使用
1.3.1 Eric 6 的安裝及中文化
1.3.2 Eric 6 的相關設定
1.3.3 安裝自動補全插件 jedi
1.3.4 測試 Eric 6
1.3.5 Eric 6 的基本使用
1.4 本書程式下載
Chapter 02 Python基本語法
2.1 Python 簡介
2.2 資料類型
案例2-1 基本運算
2.3 String(字串)
案例 2-2 字串入門
案例 2-3 字串常用方法
2.4 List(列表)
案例 2-4 列表操作
2.5 Tuple(元組)
案例 2-5 元組操作
2.6 Dictionary(字典)
案例 2-6 字典操作
2.7 資料類型轉換
2.8 控制語句
案例 2-7 控制語句
2.9 自訂函數
案例 2-8 函數定義
2.10 函數 partial
案例 2-9 partial 函數的使用
2.11 lambda 運算式
案例 2-10 lambda 運算式操作
2.12 類別和實例
案例 2-11 類別和實例的使用
案例 2-12 類別的屬性和方法的使用
案例 2-13 類別的動態屬性操作
2.13 類別的屬性和方法
2.14 類別的動態屬性
Chapter 03 Qt Designer的使用
3.1 Qt Designer 快速入門
3.1.1 建立主視窗
3.1.2 視窗主要區域介紹
3.1.3 查看 UI 檔案
3.1.4 將 .ui 檔轉換為 .py 檔案
3.1.5 分離介面與邏輯
3.2 佈局管理入門
3.2.1 使用佈局管理器佈局
3.2.2 使用容器進行佈局
3.3 Qt Designer 實戰應用
3.3.1 絕對佈局
3.3.2 使用佈局管理器佈局
3.3.3 其他需要注意的內容
3.3.4 測試程式
3.4 訊號和槽關聯
3.4.1 簡單入門
3.4.2 快速進階
3.5 功能表與工具列
3.5.1 介面設計
3.5.2 效果測試
3.5.3 應用:載入其他視窗
3.6 打包資源檔
3.6.1 使用 Qt Designer 載入資源檔
3.6.2 在表單中使用資源檔
3.6.3 轉換資源檔
3.6.4 匯入 .py 資源檔
Chapter 04 PyQt5 基本視窗控制項
4.1 QMainWindow
4.1.1 視窗類型介紹
4.1.2 建立主視窗
案例4-1 建立主視窗
4.1.3 將主視窗放在螢幕中間
案例4-2 主視窗置中顯示
4.1.4 關閉主視窗
案例4-3 關閉主視窗
4.2 QWidget
4.2.1 視窗坐標系統
4.2.2 常用的幾何結構
案例4-4 螢幕坐標系統顯示
4.2.3 建立第一個 PyQt5 應用程式
案例4-5 建立一個主視窗
4.2.4 為應用程式設定圖示
案例4-6 設定程式圖示
4.2.5 顯示氣泡提示訊息
4.3 QLabel
案例4-7 顯示 QLabel
案例4-8 使用 QLabel
4.4 文字方塊類控制項
4.4.1 QLineEdit
案例4-9 EchoMode 的顯示效果
案例4-10 驗證器
案例4-11 輸入遮罩
案例4-12 綜合範例
4.4.2 QTextEdit
案例4-13 QTextEdit 的使用
4.5 按鈕類控制項
4.5.1 QAbstractButton
4.5.2 QPushButton
案例4-14 QPushButton 按鈕的使用
4.5.3 QRadioButton
案例4-15 QRadioButton 按鈕的使用
4.5.4 QCheckBox
案例4-16 QCheckBox 按鈕的使用
4.6 QComboBox(下拉式清單方塊)
案例4-17 QComboBox 按鈕的使用
4.7 QSpinBox(計數器)
案例4-18 QSpinBox 的使用
4.8 QSlider(滑動條)
案例4-19 QSlider 的使用
4.9 對話方塊類控制項
4.9.1 QDialog
案例4-20 QDialog 的使用
4.9.2 QMessageBox
案例4-21 QMessageBox 的使用
4.9.3 QInputDialog
案例4-22 QInputDialog 的使用
4.9.4 QFontDialog
案例4-23 QFontDialog 的使用
4.9.5 QFileDialog
案例4-24 QFileDialog 的使用
4.10 視窗繪圖類控制項
4.10.1 QPainter
案例4-25 繪製文字
案例4-26 繪製點
4.10.2 QPen
案例4-27 QPen 的使用
4.10.3 QBrush
案例4-28 QBrush 的使用
4.10.4 QPixmap
案例4-29 QPixmap 的使用
4.11 拖曳與剪貼簿
4.11.1 Drag 與Drop
案例4-30 拖曳功能
4.11.2 QClipboard
案例4-31 QClipboard 的使用
4.12 日曆與時間
4.12.1 QCalendar
案例4-32 QCalendar 的使用
4.12.2 QDateTimeEdit
案例4-33 QDateTimeEdit 的使用
4.13 功能表、工具列與狀態列
4.13.1 功能表
案例4-34 QMenuBar 的使用
4.13.2 QToolBar
案例4-35 QToolBar 的使用
4.13.3 QStatusBar
案例4-36 QStatusBar 的使用
4.14 QPrinter
案例4-37 QPrinter 的使用
Chapter 05 PyQt5 進階介面控制項
5.1 表格與樹
5.1.1 QTableView
案例5-1 QTableView 的使用
5.1.2 QListView
案例5-2 QListView 的使用
5.1.3 QListWidget
案例5-3 QListWidget 的使用
5.1.4 QTableWidget
5.1.5 QTreeView
5.2 容器:承載更多的控制項
5.2.1 QTabWidget
案例5-4 QTabWidget 的使用
5.2.2 QStackedWidget
案例5-5 QStackedWidget 的使用
5.2.3 QDockWidget
案例5-6 QDockWidget 的使用
5.2.4 多文件介面
案例5-7 多文件介面
5.2.5 QScrollBar
案例5-8 QScrollBar
5.3 多執行緒
5.3.1 QTimer
5.3.2 Q_read
案例5-9 應用案例:分離UI主執行緒與工作執行緒
5.3.3 事件處理
5.4 網頁互動
案例5-10 載入並顯示外部的Web頁面
案例5-11 載入並顯示本地的Web頁面
案例5-12 載入並顯示嵌入的HTML標記
案例5-13 PyQt 呼叫JavaScript 腳本
案例5-14 JavaS
Chapter 01 認識 PyQt5
1.1 PyQt 框架簡介
1.1.1 PyQt5 的特點
1.1.2 Qt 與PyQt 的關係
1.1.3 其他圖形介面開發程式庫介紹
1.1.4 PyQt4/PyQt5
1.1.5 Python 2/Python 3
1.2 PyQt5 環境建置
1.2.1 在 Windows 下建置 PyQt5 環境
1.2.2 PyQt5 的安裝測試
1.2.3 安裝其他 Python 模組
1.2.4 使用 PyQt5 的 API 文件
1.3 Eric 6 的安裝與使用
1.3.1 Eric 6 的安裝及中文化
1.3.2 Eric 6 的相關設定
1.3.3 安裝自動補全插件 jedi
1.3.4 測試 Eric 6
1.3.5 Eric 6 的基本使用
1.4 本書程式下載
Chapter 02 Python基本語法
2.1 Python 簡介
2.2 資料類型
案例2-1 基本運算
2.3 String(字串)
案例 2-2 字串入門
案例 2-3 字串常用方法
2.4 List(列表)
案例 2-4 列表操作
2.5 Tuple(元組)
案例 2-5 元組操作
2.6 Dictionary(字典)
案例 2-6 字典操作
2.7 資料類型轉換
2.8 控制語句
案例 2-7 控制語句
2.9 自訂函數
案例 2-8 函數定義
2.10 函數 partial
案例 2-9 partial 函數的使用
2.11 lambda 運算式
案例 2-10 lambda 運算式操作
2.12 類別和實例
案例 2-11 類別和實例的使用
案例 2-12 類別的屬性和方法的使用
案例 2-13 類別的動態屬性操作
2.13 類別的屬性和方法
2.14 類別的動態屬性
Chapter 03 Qt Designer的使用
3.1 Qt Designer 快速入門
3.1.1 建立主視窗
3.1.2 視窗主要區域介紹
3.1.3 查看 UI 檔案
3.1.4 將 .ui 檔轉換為 .py 檔案
3.1.5 分離介面與邏輯
3.2 佈局管理入門
3.2.1 使用佈局管理器佈局
3.2.2 使用容器進行佈局
3.3 Qt Designer 實戰應用
3.3.1 絕對佈局
3.3.2 使用佈局管理器佈局
3.3.3 其他需要注意的內容
3.3.4 測試程式
3.4 訊號和槽關聯
3.4.1 簡單入門
3.4.2 快速進階
3.5 功能表與工具列
3.5.1 介面設計
3.5.2 效果測試
3.5.3 應用:載入其他視窗
3.6 打包資源檔
3.6.1 使用 Qt Designer 載入資源檔
3.6.2 在表單中使用資源檔
3.6.3 轉換資源檔
3.6.4 匯入 .py 資源檔
Chapter 04 PyQt5 基本視窗控制項
4.1 QMainWindow
4.1.1 視窗類型介紹
4.1.2 建立主視窗
案例4-1 建立主視窗
4.1.3 將主視窗放在螢幕中間
案例4-2 主視窗置中顯示
4.1.4 關閉主視窗
案例4-3 關閉主視窗
4.2 QWidget
4.2.1 視窗坐標系統
4.2.2 常用的幾何結構
案例4-4 螢幕坐標系統顯示
4.2.3 建立第一個 PyQt5 應用程式
案例4-5 建立一個主視窗
4.2.4 為應用程式設定圖示
案例4-6 設定程式圖示
4.2.5 顯示氣泡提示訊息
4.3 QLabel
案例4-7 顯示 QLabel
案例4-8 使用 QLabel
4.4 文字方塊類控制項
4.4.1 QLineEdit
案例4-9 EchoMode 的顯示效果
案例4-10 驗證器
案例4-11 輸入遮罩
案例4-12 綜合範例
4.4.2 QTextEdit
案例4-13 QTextEdit 的使用
4.5 按鈕類控制項
4.5.1 QAbstractButton
4.5.2 QPushButton
案例4-14 QPushButton 按鈕的使用
4.5.3 QRadioButton
案例4-15 QRadioButton 按鈕的使用
4.5.4 QCheckBox
案例4-16 QCheckBox 按鈕的使用
4.6 QComboBox(下拉式清單方塊)
案例4-17 QComboBox 按鈕的使用
4.7 QSpinBox(計數器)
案例4-18 QSpinBox 的使用
4.8 QSlider(滑動條)
案例4-19 QSlider 的使用
4.9 對話方塊類控制項
4.9.1 QDialog
案例4-20 QDialog 的使用
4.9.2 QMessageBox
案例4-21 QMessageBox 的使用
4.9.3 QInputDialog
案例4-22 QInputDialog 的使用
4.9.4 QFontDialog
案例4-23 QFontDialog 的使用
4.9.5 QFileDialog
案例4-24 QFileDialog 的使用
4.10 視窗繪圖類控制項
4.10.1 QPainter
案例4-25 繪製文字
案例4-26 繪製點
4.10.2 QPen
案例4-27 QPen 的使用
4.10.3 QBrush
案例4-28 QBrush 的使用
4.10.4 QPixmap
案例4-29 QPixmap 的使用
4.11 拖曳與剪貼簿
4.11.1 Drag 與Drop
案例4-30 拖曳功能
4.11.2 QClipboard
案例4-31 QClipboard 的使用
4.12 日曆與時間
4.12.1 QCalendar
案例4-32 QCalendar 的使用
4.12.2 QDateTimeEdit
案例4-33 QDateTimeEdit 的使用
4.13 功能表、工具列與狀態列
4.13.1 功能表
案例4-34 QMenuBar 的使用
4.13.2 QToolBar
案例4-35 QToolBar 的使用
4.13.3 QStatusBar
案例4-36 QStatusBar 的使用
4.14 QPrinter
案例4-37 QPrinter 的使用
Chapter 05 PyQt5 進階介面控制項
5.1 表格與樹
5.1.1 QTableView
案例5-1 QTableView 的使用
5.1.2 QListView
案例5-2 QListView 的使用
5.1.3 QListWidget
案例5-3 QListWidget 的使用
5.1.4 QTableWidget
5.1.5 QTreeView
5.2 容器:承載更多的控制項
5.2.1 QTabWidget
案例5-4 QTabWidget 的使用
5.2.2 QStackedWidget
案例5-5 QStackedWidget 的使用
5.2.3 QDockWidget
案例5-6 QDockWidget 的使用
5.2.4 多文件介面
案例5-7 多文件介面
5.2.5 QScrollBar
案例5-8 QScrollBar
5.3 多執行緒
5.3.1 QTimer
5.3.2 Q_read
案例5-9 應用案例:分離UI主執行緒與工作執行緒
5.3.3 事件處理
5.4 網頁互動
案例5-10 載入並顯示外部的Web頁面
案例5-11 載入並顯示本地的Web頁面
案例5-12 載入並顯示嵌入的HTML標記
案例5-13 PyQt 呼叫JavaScript 腳本
案例5-14 JavaS