0920~0926_夏季暢銷第三波BN

大數據資料可視化:Python QT GUI程式設計

達洋貓《櫻花樹》一卡通

達洋貓《櫻花樹》一卡通

【開學大作戰】一卡通全面限時9折起

  • 9 792
    880

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

人工智慧,大數據操作的後端,需要一個讓使用者能操作的前端介面。應用程式前端介面的選擇,除了Web、App、命令列之外,還有已存在30年的視窗程式。在大型專案開發中,雖然網頁已成為主流,但許多場合,還是有視窗程式的需求。

 

開發視窗程式首選當然是Visual Studio,但必須熟悉C++/C#。如果讀者已經熟悉了Python,又想開發視窗程式,Qt將會是最好的選擇。讀者只要會Python就可以了。

 

Qt C++ 類別庫是一套廣泛使用的跨平台GUI 設計類別庫,PyQt5 是Qt5 C++類別庫的Python 綁定,使用PyQt5 在Python 裡程式設計,可以將Python 豐富的科學計算、圖形顯示等功能與PyQt5 的GUI 設計功能結合起來,開發出比較專業的Python GUI 應用程式,便於對研究成果進行有效的整合與展示。

 

本書介紹在Python 中使用PyQt5、PyQtChart、Matplotlib 等進行GUI 應用程式設計和資料視覺化程式設計的方法,用最真實範例的方式,讓讀者熟悉Qt的開發方式,並且掌控所有視窗的元件,全書內容分為三部分。包括:

 

►完整Python、Qt開發環境的安裝

► PyQt5程式設計架構

►常用視窗元件使用,MV架構、GUI的增強設計

►滑鼠鍵盤等事件的處理、對話方塊及多視窗的應用

►資料庫的使用,使用了SQLITE

►PyQt5上的檔案操作、繪圖元件

►PyQt5多媒體的操作,包括音樂及視訊

►PyQtChart的圖表製作、PyQtDataVisualization的使用

►最強大的人工智慧統計繪圖套件Matplotlib的使用

 

本書特色

 

◎ 使用PyQt5 進行GUI 應用程式設計

◎ 使用PyQtChart、PyQtDataVisualization 和Matplotlib 在GUI 程式的視窗介面上嵌入資料視覺化功能。   

適合讀者群:具Python程式設計基礎、想透過Python設計GUI應用程式,

或在GUI應用程式中實現資料視覺化的讀者。    

作者

王維波

 

博士,大學教師。

從事測控技術與儀器專業相關工作,主要研究地球物理探測儀器開發、監測資料處理方法和軟體發展。

 

栗寶鵑

 

博士,科研人員。

 

主要從事地球物理、水下探測、遙感等專業方向的資料處理和圖像識別方面的研究工作,在日常工作中常使用Qt和Python解決實際問題。

 

張曉東

 

博士,大學教師。

 

從事自動化相關的教學工作,研究方向主要是優化演算法、最優控制和智慧控制。具有豐富的程式設計經驗,善於透過Qt C 和Python的結合提高演算法效率。

目錄

前言
 
第一篇 PyQt5 開發基礎
01 | 開發環境安裝
1.1 Python
1.2 Qt
1.3 PyQt5
| 02 | PyQt5 GUI 程式架構
2.1 PyQt5 GUI 程式的基本架構 
2.2 使用視覺化設計表單的GUI程式
2.3 訊號與槽的使用
2.4 自訂訊號的使用
2.5 資源檔的使用
2.6 從Qt C++ 類別庫到PyQt5
2.7  3個單表單GUI 專案範本
 
第二篇 GUI 應用程式設計
| 03 | 常用介面元件的使用
3.1 資料登錄輸出
3.2 QPushButton 
3.3 QSlider 和QProgressBar
3.4 日期時間資料
3.5 計時器QTimer
3.6 下拉式選單QComboBox
3.7 QMainWindow 與QAction 
3.8 QListWidget 和QToolButton 
3.9 QTreeWidget 和QDockWidget 
3.10 QTableWidget 
3.11 容器類別元件與版面配置設計
| 04 | Model/View 結構
4.1 Model/View 結構 
4.2 QFileSystemModel
4.3 QStringListModel
4.4 QStandardItemModel
4.5 自訂代理 
| 05 | 事件處理
5.1 預設事件處理 
5.2 事件攔截與事件過濾
5.3 拖放事件與拖放操作
5.4 具有拖放操作功能的元件
| 06 | 對話方塊與多視窗設計
6.1 標準對話方塊
6.2 自訂對話方塊及其使用 
6.3 多視窗應用程式
6.4 MDI 應用程式設計 
| 07 | 資料庫
7.1 Qt SQL 模組概述
7.2 QSqlTableModel 的使用
7.3 QSqlQueryModel 的使用
7.4 QSqlQuery 的使用
7.5 QSqlRelationalTableModel 的使用
| 08 | 繪圖
8.1 QPainter 繪圖 
8.2 座標系統和座標轉換
8.3 自訂介面元件
8.4 Graphics View 繪圖架構
| 09 | 檔案
9.1 檔案操作相關類別概述
9.2 文字檔讀寫
9.3 二進位檔案讀寫
9.4 目錄和檔案操作
| 10 | 多媒體
10.1 PyQt5 多媒體模組功能概述
10.2 音訊播放
10.3 音訊輸入
10.4 視訊播放
10.5 攝影機的使用
| 11 | GUI 設計增強技術
11.1 多語言介面
11.2 QSS 訂製介面
 
第三篇 資料視覺化
| 12 | PyQtChart 二維繪圖
12.1 PyQtChart 概述
12.2 QChart 繪製聚合線圖 
12.3 QChart 繪圖進階功能
12.4 對數座標軸和多座標軸
12.5 圓形圖和各種柱狀圖
12.6 蠟燭圖和日期時間座標軸
12.7 區域填滿圖 
12.8 極座標圖
| 13 | PyQtDataVisualization 3D 繪圖
13.1 PyQtDataVisualization 模組概述 
13.2 3D 柱狀圖 
13.3 3D 散點圖 
13.4 立體曲面圖
| 14 | Matplotlib 資料視覺化
14.1 Matplotlib 的基本用法 
14.2 圖的主要元素的物件導向操作
14.3 互動操作
14.4 典型二維圖的繪製 
14.5 3D 資料繪圖

 

序/導讀

前言

 

Python 作為一個開放原始碼的直譯型程式設計軟體,在教學、科學研究、實際專案中用得越來越多。Python 易學好用,程式資源豐富,在程式設計解決一些科學計算問題時比較實用,但是Python 附帶的Tkinter 套件設計GUI 程式的功能比較弱,無法設計專業的GUI 應用程式。

 

Qt C++ 類別庫是一套廣泛使用的跨平台GUI 設計類別庫,PyQt5 是Qt5 C++類別庫的Python 綁定,使用PyQt5 在Python 裡程式設計,可以將Python 豐富的科學計算、圖形顯示等功能與PyQt5 的GUI 設計功能結合起來,開發出比較專業的Python GUI 應用程式,便於對研究成果進行有效的整合與展示。

 

目前,介紹Python 程式設計的書很多,但是專門介紹PyQt5 GUI 程式設計的書很少。本書介紹兩個主題:一個是使用PyQt5 進行GUI 應用程式設計,另一個是使用PyQtChart、PyQtDataVisualization 和Matplotlib 在GUI 程式的視窗介面上嵌入資料視覺化功能。這兩個主題都是非常實用的,可以將研究成果整合為一個GUI 應用程式,進行互動式操作和結果展示。

 

☘ 本書內容

 

本書介紹在Python 中使用PyQt5、PyQtChart、Matplotlib 等進行GUI 應用程式設計和資料視覺化程式設計的方法,全書的內容分為三部分。

 

第一部分是PyQt5 開發基礎,包含第1 章和第2 章。

第1 章介紹Python、Qt、PyQt5 的特點和安裝方法,在Windows 中建立開發環境。

 前言

 

Python 作為一個開放原始碼的直譯型程式設計軟體,在教學、科學研究、實際專案中用得越來越多。Python 易學好用,程式資源豐富,在程式設計解決一些科學計算問題時比較實用,但是Python 附帶的Tkinter 套件設計GUI 程式的功能比較弱,無法設計專業的GUI 應用程式。

 

Qt C++ 類別庫是一套廣泛使用的跨平台GUI 設計類別庫,PyQt5 是Qt5 C++類別庫的Python 綁定,使用PyQt5 在Python 裡程式設計,可以將Python 豐富的科學計算、圖形顯示等功能與PyQt5 的GUI 設計功能結合起來,開發出比較專業的Python GUI 應用程式,便於對研究成果進行有效的整合與展示。

 

目前,介紹Python 程式設計的書很多,但是專門介紹PyQt5 GUI 程式設計的書很少。本書介紹兩個主題:一個是使用PyQt5 進行GUI 應用程式設計,另一個是使用PyQtChart、PyQtDataVisualization 和Matplotlib 在GUI 程式的視窗介面上嵌入資料視覺化功能。這兩個主題都是非常實用的,可以將研究成果整合為一個GUI 應用程式,進行互動式操作和結果展示。

 

☘ 本書內容

 

本書介紹在Python 中使用PyQt5、PyQtChart、Matplotlib 等進行GUI 應用程式設計和資料視覺化程式設計的方法,全書的內容分為三部分。

 

第一部分是PyQt5 開發基礎,包含第1 章和第2 章。

第1 章介紹Python、Qt、PyQt5 的特點和安裝方法,在Windows 中建立開發環境。

 

第2 章介紹使用PyQt5 開發GUI 應用程式的基本架構原理,包含GUI 應用程式的基本結構、使用視覺化設計UI 表單時開發GUI 程式的流程和架構、訊號與槽的使用方法等。掌握了第2 章的內容就掌握了PyQt5 開發GUI 應用程式的架構性原理,再學習第二部分和第三部分就很容易了。

 

第二部分是GUI 應用程式設計,從第3 章至第11 章。

 

這部分介紹GUI 應用程式設計中常用的一些功能模組的程式設計使用方法,包含常用介面元件的使用、Model/View 結構、事件處理、對話方塊和多視窗設計、資料庫、繪圖、檔案讀寫和操作、多媒體、多語言介面和Qt 樣式表訂製介面等。

 

這部分的內容根據PyQt5 和Python 各自的特點做了取捨,整體的原則就是對GUI 程式設計中必需的,而Python 中沒有或功能不強的模組介紹。舉例來說,Python 雖然有附帶的資料庫、多媒體、檔案讀寫功能模組,但是功能不如PyQt5 的對應模組,或不易與PyQt5 的GUI 程式的視窗介面結合使用,因此本書就介紹PyQt5 的資料庫、多媒體、檔案讀寫功能模組。而Python 附帶的多執行緒程式設計功能已經比較全,且不涉及使用者介面,因此本書就不介紹PyQt5 的多執行緒程式設計功能。Python 有很多功能強大的協力廠商網路功能模組,因此沒有必要介紹PyQt5 的網路程式設計功能。

 

第三部分是資料視覺化程式設計,從第12 章至第14 章。

 

Chart 和Data Visualization 模組是Qt C++ 類別庫的一部分, 分別用於二維圖表繪製和3D 資料視覺化,但是PyQt5 中沒有這兩個模組,需要單獨安裝PyQtChart 套件和PyQtDataVisualization 套件。第 12 章介紹使用PyQtChart 模組繪製各種二維圖表的程式設計方法,第13 章介紹使用PyQtDataVisualization模組繪製3D 柱狀圖、3D 散點圖和立體曲面圖的程式設計方法。

 

Matplotlib 是Python 中應用最廣泛的資料視覺化模組,但是一般介紹Matplotlib 資料視覺化的書很少詳細介紹將Matplotlib 嵌入GUI 視窗上的程式設計方法。第14 章專門介紹Matplotlib 與PyQt5 結合,嵌入GUI 程式中實現資料視覺化的程式設計方法,這是在撰寫整合化的Python GUI 應用程式時經常遇到的,是非常實用的功能。

 

☘ 本書學習路線

 

本書使用的程式語言是Python,但是本書並不會介紹Python 語言基礎,需要讀者對Python 程式設計有一定的了解,特別是對Python 的物件導向程式設計原理要比較熟悉。如果讀者對Python 不夠熟悉,需要參考專門介紹Python 程式設計基礎的書,學會Python 後再來學習本書。

 

本書的內容雖然用到Qt 的IDE,即Qt Creator,但是並不需要撰寫任何C++語言程式,所以讀者無須具有C++ 語言基礎。當然,如果讀者有C++ 語言基礎,或對Qt C++ 程式設計比較熟悉,對閱讀本書的內容是非常有幫助的。

 

學習本書應從第一部分開始。第1 章介紹本書用到的各個軟體及其安裝,架設開發環境。第2 章是本書的基礎和重點內容,介紹了PyQt5 GUI 應用程式的基本程式架構、以UI 表單視覺化設計為基礎的GUI 應用程式的設計流程和工具軟體pyuic5 的使用、UI 與表單業務邏輯分離設計的原理、Qt 的核心技術訊號與槽的使用方法、Qt Creator 中管理和使用資源檔,以及透過工具軟體pyrcc5將資源檔轉為Python 程式的方法。第2 章還建立了3 個單視窗專案範本,本書的大部分範例都是以這幾個專案範本建立為基礎的。

 

掌握第2 章的內容就掌握了用PyQt5 設計GUI 程式的技術架構,剩下的就是PyQt5 中用於GUI 應用程式設計的各種類的使用了。

 

第二部分介紹PyQt5 GUI 程式設計中各個技術模組的使用方法,包含常用介面元件、Model/View 結構、事件處理、對話方塊與多視窗設計、資料庫、繪圖、檔案、多媒體等,讀者可以根據自己的需要學習或查閱對應章節。第11章有兩個新的技術點不在第2 章介紹的技術架構內,分別是多語言介面設計方法和Qt 樣式表訂製介面方法。

 

第三部分介紹資料視覺化設計方法。PyQtChart 和PyQtDataVisualization 是QtC++ 類別庫對應模組的Python 綁

 

☘ 本書約定

 

本書撰寫和執行Python 程式使用Python 3.7 附帶的軟體IDLE,對於Python 程式有以下的約定。

 

Tab 縮排使用3 個空格。因為Python 來源程式是採用縮排確定程式碼片段的,排版時為減少縮排空格數,本書設定Tab 為3 個空格。
 

程式碼片段的縮排只用相對縮排。在文中一個程式碼片段內的程式使用相對縮排,而非整個程式檔案內的縮排。

 

第2 章介紹使用PyQt5 開發GUI 應用程式的基本架構原理,包含GUI 應用程式的基本結構、使用視覺化設計UI 表單時開發GUI 程式的流程和架構、訊號與槽的使用方法等。掌握了第2 章的內容就掌握了PyQt5 開發GUI 應用程式的架構性原理,再學習第二部分和第三部分就很容易了。

 

第二部分是GUI 應用程式設計,從第3 章至第11 章。

 

這部分介紹GUI 應用程式設計中常用的一些功能模組的程式設計使用方法,包含常用介面元件的使用、Model/View 結構、事件處理、對話方塊和多視窗設計、資料庫、繪圖、檔案讀寫和操作、多媒體、多語言介面和Qt 樣式表訂製介面等。

 

這部分的內容根據PyQt5 和Python 各自的特點做了取捨,整體的原則就是對GUI 程式設計中必需的,而Python 中沒有或功能不強的模組介紹。舉例來說,Python 雖然有附帶的資料庫、多媒體、檔案讀寫功能模組,但是功能不如PyQt5 的對應模組,或不易與PyQt5 的GUI 程式的視窗介面結合使用,因此本書就介紹PyQt5 的資料庫、多媒體、檔案讀寫功能模組。而Python 附帶的多執行緒程式設計功能已經比較全,且不涉及使用者介面,因此本書就不介紹PyQt5 的多執行緒程式設計功能。Python 有很多功能強大的協力廠商網路功能模組,因此沒有必要介紹PyQt5 的網路程式設計功能。

 

第三部分是資料視覺化程式設計,從第12 章至第14 章。

 

Chart 和Data Visualization 模組是Qt C++ 類別庫的一部分, 分別用於二維圖表繪製和3D 資料視覺化,但是PyQt5 中沒有這兩個模組,需要單獨安裝PyQtChart 套件和PyQtDataVisualization 套件。第 12 章介紹使用PyQtChart 模組繪製各種二維圖表的程式設計方法,第13 章介紹使用PyQtDataVisualization模組繪製3D 柱狀圖、3D 散點圖和立體曲面圖的程式設計方法。

 

Matplotlib 是Python 中應用最廣泛的資料視覺化模組,但是一般介紹Matplotlib 資料視覺化的書很少詳細介紹將Matplotlib 嵌入GUI 視窗上的程式設計方法。第14 章專門介紹Matplotlib 與PyQt5 結合,嵌入GUI 程式中實現資料視覺化的程式設計方法,這是在撰寫整合化的Python GUI 應用程式時經常遇到的,是非常實用的功能。

 

☘ 本書學習路線

 

本書使用的程式語言是Python,但是本書並不會介紹Python 語言基礎,需要讀者對Python 程式設計有一定的了解,特別是對Python 的物件導向程式設計原理要比較熟悉。如果讀者對Python 不夠熟悉,需要參考專門介紹Python 程式設計基礎的書,學會Python 後再來學習本書。

 

本書的內容雖然用到Qt 的IDE,即Qt Creator,但是並不需要撰寫任何C++語言程式,所以讀者無須具有C++ 語言基礎。當然,如果讀者有C++ 語言基礎,或對Qt C++ 程式設計比較熟悉,對閱讀本書的內容是非常有幫助的。

 

學習本書應從第一部分開始。第1 章介紹本書用到的各個軟體及其安裝,架設開發環境。第2 章是本書的基礎和重點內容,介紹了PyQt5 GUI 應用程式的基本程式架構、以UI 表單視覺化設計為基礎的GUI 應用程式的設計流程和工具軟體pyuic5 的使用、UI 與表單業務邏輯分離設計的原理、Qt 的核心技術訊號與槽的使用方法、Qt Creator 中管理和使用資源檔,以及透過工具軟體pyrcc5將資源檔轉為Python 程式的方法。第2 章還建立了3 個單視窗專案範本,本書的大部分範例都是以這幾個專案範本建立為基礎的。

 

掌握第2 章的內容就掌握了用PyQt5 設計GUI 程式的技術架構,剩下的就是PyQt5 中用於GUI 應用程式設計的各種類的使用了。

 

第二部分介紹PyQt5 GUI 程式設計中各個技術模組的使用方法,包含常用介面元件、Model/View 結構、事件處理、對話方塊與多視窗設計、資料庫、繪圖、檔案、多媒體等,讀者可以根據自己的需要學習或查閱對應章節。第11章有兩個新的技術點不在第2 章介紹的技術架構內,分別是多語言介面設計方法和Qt 樣式表訂製介面方法。

 

第三部分介紹資料視覺化設計方法。PyQtChart 和PyQtDataVisualization 是QtC++ 類別庫對應模組的Python 綁定,分別用於二維圖表和3D 資料視覺化設計,其內容的介紹比較全面。另外由於Matplotlib 在Python 資料視覺化中應用廣泛,第14 章專門介紹將Matplotlib 嵌入GUI 表單上實現互動式資料視覺化的設計方法,包含主要的技術點和一些常用二維圖和3D 圖的程式設計使用方法。

 

PyQtChart、PyQtDataVisualization 與Matplotlib 的某些功能是重合的,但它們各有千秋,讀者可根據自己的需要和熟悉的內容選擇學習和使用。如果讀者熟悉Qt C++ 類別庫中的二維圖表和3D 資料視覺化模組的使用,就參閱第12 章和第13 章;如果讀者熟悉Matplotlib 的使用,就參閱第14 章。

 

☘ 範例來源程式

 

本書的範例程式都是在64 位元Windows 7 系統裡開發和測試的。在開始撰寫本書時使用的是Qt 5.11 和PyQt 5.11,完成本書初稿時已經發佈了Qt 5.12 和PyQt 5.12,由於Qt 5.12 是一個LTS(Long Term Supported)版本,於是又用Qt 5.12 和PyQt 5.12 對全書內容和程式進行了檢查、修改和測試。

 

本書使用的各個軟體或Python 套件的版本分別是Python 3.7.0、Qt 5.12.0、PyQt 5.12、PyQtChart 5.12、PyQtDataVisualization 5.12、Matplotlib 3.0.0。

 

讀者在拿到本書進行閱讀和學習時,這些軟體一定已經有更新的發佈版本了。讀者在建置開發環境時使用最新的軟體版本即可,不必與本書使用的軟體版本完全一致,因為這些軟體在大的版本序列裡基本上是向下相容的。

 

本書提供所有範例來源程式的下載,讀者可到本公司官網搜索到本書後,根據提示(請輸入DM2006)下載本書的範例程式資源。本書提供兩套範例來源程式,使用目的不同。

 

一套是具有全部原始程式的程式,包含Qt 專案、UI 表單、Python 程式等,其中Python 主程式可以直接執行,顯示範例執行結果。讀者可以使用這套來源程式測試和檢視範例執行結果,並檢視已設計好的UI 表單和Python 程式檔案。

 

另外一套是只有UI 表單的不完整程式,包含Qt 專案、UI 表單、Python 程式架構,其中的Python 程式檔案只有基本架構,沒有功能實現程式。這套程式是為了便於讀者使用已經設計好的UI 表單,根據書上介紹的內容和過程,在Python 程式架構裡自己撰寫程式,逐步實現功能。之所以保留UI 表單,是因為UI 表單的視覺化設計是個比較耗時間的過程,讀者如果自己從頭開始設計UI 表單,難以保障所有元件的名稱和屬性與範例的一致,在Python 程式設計實現業務功能時容易出現問題。

 

作者一貫認為UI 表單的視覺化設計不是學習程式設計的重點,表單介面的建立能用視覺化設計解決的就不要用程式。一般情況下,做過幾個範例後很快就可

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789865501150
    • 分級
    • 普通級
    • 頁數
    • 768
    • 商品規格
    • 23*17
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing