日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

盡善盡美之作《Python Qt GUI與數(shù)據(jù)可視化編程》

系統(tǒng) 2510 0

我寫的第二本書《Python Qt GUI與數(shù)據(jù)可視化編程》終于上架銷售了。

盡善盡美之作《Python Qt GUI與數(shù)據(jù)可視化編程》_第1張圖片

去年為第一本書《Qt 5.9 C++開發(fā)指南》寫的介紹文章稱其為傾心傾力之作。本書與第一本書是有些關(guān)聯(lián)的,一些內(nèi)容框架和示例來自于第一本書,但是本書不是簡單地將C++的示例改寫為Python的示例,在寫這本書時發(fā)現(xiàn)第一本書中的一些不足,做了很多的改進。我們在寫論文或指導(dǎo)學(xué)生寫論文時都知道一個基本的道理:好的論文總是一遍一遍改出來的。這是我寫的第二本書,有了更多的寫書經(jīng)驗,在內(nèi)容和結(jié)構(gòu)上更加完善,力求完美,所以稱其為盡善盡美之作。

怎樣才能算得上是盡善盡美之作呢?本人在大學(xué)里從事教學(xué)工作,看多了學(xué)生的報告和畢業(yè)論文,翻一遍基本上就能看出來哪篇是好的論文,哪篇是差的論文。好的論文結(jié)構(gòu)清晰,內(nèi)容充實而條理清楚,該具體的地方能詳細介紹,該粗略的地方絕不多占篇幅,格式美觀,圖文并茂,讓人看了就能看明白,看著就舒服。而差的論文則相反,論文結(jié)構(gòu)不清,邏輯混亂,缺少真材實料,內(nèi)容注水嚴重,格式也差。

本書就是按照我心目中好論文的標準來寫的,在章節(jié)內(nèi)容選取、內(nèi)容順序安排、示例設(shè)計、原理和程序講解各方面力求完美。總結(jié)一下,本書有以下幾個特點。

1. 主題明確,內(nèi)容選擇緊扣主題

本書的主題是使用PyQt5進行GUI應(yīng)用程序設(shè)計,以及嵌入到GUI界面的數(shù)據(jù)可視化編程。這個主題是非常實用的,因為我們經(jīng)常需要將自己編寫的Python程序封裝成一個GUI程序,以便進行展示和交互式的操作。而Python自帶的tkinter雖然可以做GUI界面,但是功能比較差,Matplotlib是常用的數(shù)據(jù)可視化工具,但是一般介紹Matplotlib的書只介紹其腳本化的編程方法,將其當(dāng)做類似于MATLAB中的plot繪圖工具在使用。

PyQt5是Qt5 C++類庫的Python綁定,使用PyQt5可以在Python中開發(fā)專業(yè)級的GUI程序。我們已經(jīng)出版了一本《Qt 5.9 C++開發(fā)指南》,對Qt C++類庫的使用比較熟悉,所以寫這個主題也是合適的。本書圍繞這個主題設(shè)置章節(jié)內(nèi)容,首先在內(nèi)容選擇上追求完美。

(1)本書沒有用一章專門介紹Python編程基礎(chǔ)。研究GUI和數(shù)據(jù)可視化編程的讀者應(yīng)該已有一定的Python編程基礎(chǔ),所以本書沒有必要再介紹Python編程基礎(chǔ)。

(2)有些功能模塊是PyQt5和Python都有的,就只選擇在Python中設(shè)計GUI應(yīng)用程序用得上的PyQt5模塊。例如,Python雖然有自帶的數(shù)據(jù)庫、多媒體、文件讀寫功能模塊,但是功能不如PyQt5的相應(yīng)模塊,或不易與PyQt5的GUI程序的窗口界面結(jié)合使用,本書就介紹PyQt5的數(shù)據(jù)庫、多媒體、文件讀寫功能模塊。而Python自帶的多線程編程功能已經(jīng)比較全,且不涉及用戶界面,本書就不介紹PyQt5的多線程編程功能。Python有很多功能強大的第三方網(wǎng)絡(luò)功能模塊,也就沒有必要介紹PyQt5的網(wǎng)絡(luò)編程功能了。

(3)在數(shù)據(jù)可視化部分,本書介紹了PyQtChart和PyQtDataVisualization的使用,這兩個包實際上是Qt C++類庫的一部分,熟悉Qt C++類庫的讀者可以很快上手使用。同時又考慮到Matplotlib使用的廣泛性,增加了Matplotlib嵌入到GUI界面上實現(xiàn)數(shù)據(jù)可視化編程的內(nèi)容。

2. 章節(jié)內(nèi)容安排邏輯清晰

本書的內(nèi)容分為三大部分,各部分和章節(jié)分布如圖。

盡善盡美之作《Python Qt GUI與數(shù)據(jù)可視化編程》_第2張圖片

第一部分是PyQt5開發(fā)基礎(chǔ),包括第1章和第2章。

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

第2章介紹使用PyQt5開發(fā)GUI應(yīng)用程序的基本框架原理,包括GUI應(yīng)用程序的基本結(jié)構(gòu),可視化設(shè)計UI窗體時開發(fā)GUI程序的流程和框架,信號與槽的使用方法,資源文件的使用等。掌握了第2章的內(nèi)容就掌握了PyQt5開發(fā)GUI應(yīng)用程序的框架性原理,再根據(jù)自己的編程需要選擇性地學(xué)習(xí)第二和第三部分的章節(jié)。

第二部分是GUI應(yīng)用程序設(shè)計,從第3章至第11章。

這一部分介紹GUI應(yīng)用程序設(shè)計中常用到的一些功能模塊的編程使用方法,包括常用界面組件的使用,Model/View結(jié)構(gòu),事件處理,對話框和多窗口設(shè)計,數(shù)據(jù)庫,繪圖,文件讀寫和操作,多媒體,多語言界面和Qt樣式表定制界面等。

第三部分介紹數(shù)據(jù)可視化設(shè)計方法,從第12章至第14章。

PyQtChart和PyQtDataVisualization是Qt C++類庫相應(yīng)模塊的Python綁定,分別用于二維圖表和三維數(shù)據(jù)可視化設(shè)計,其內(nèi)容的介紹比較全面。另外由于Matplotlib在Python數(shù)據(jù)可視化中應(yīng)用廣泛,第14章專門介紹將Matplotlib嵌入到GUI界面中實現(xiàn)交互式數(shù)據(jù)可視化的設(shè)計方法,包括主要的技術(shù)點和一些常用二維圖和三維圖的編程使用方法。

PyQtChart、PyQtDataVisualization與Matplotlib的某些功能是重合的,但兩者各有千秋,讀者可根據(jù)自己的需要和熟悉的內(nèi)容選擇學(xué)習(xí)和使用。如果讀者熟悉Qt C++類庫中的二維圖表和三維數(shù)據(jù)可視化模塊的使用,就看第12章和第13章;如果讀者熟悉Matplotlib的使用,就看第14章。

3. 內(nèi)容講解言簡意賅,詳略得當(dāng)

技術(shù)書籍必須言簡意賅,避免廢話連篇,同時要結(jié)合程序或圖表進行必要的講解。在內(nèi)容的講解上要詳略得當(dāng),該簡略的就簡略,該深入的就深入,例如:

(1)本書在第2章介紹過窗體UI的可視化設(shè)計原理、代碼構(gòu)建界面的原理后,在后續(xù)章節(jié)中就基本不再介紹窗體的可視化設(shè)計過程,更不會拿構(gòu)建界面的代碼來充頁數(shù)。界面設(shè)計盡量采用可視化方法,GUI程序設(shè)計的重點應(yīng)該放在類的各種接口屬性和函數(shù)的使用上,放在業(yè)務(wù)邏輯功能的實現(xiàn)上。

(2)對于簡單的界面組件的使用,本書不會花太多篇幅來逐一介紹,因為有些組件的常用功能很簡單,甚至是顯而易見的,例如QLabel,QPushButton等。本書第3章介紹界面組件的使用時,通常是將幾個組件放在一個示例里一起介紹,除了簡單介紹其常用方法外,還介紹一些高級方法的使用,例如QTreeWidget的節(jié)點關(guān)聯(lián)數(shù)據(jù)的使用方法。

(3)對于某些內(nèi)容本書又會深入地詳細介紹。例如第14章介紹Matplotlib嵌入到GUI界面中的編程方法,本書就介紹的非常詳細,而不是像某本書上只是拿一個官方示例跑一下而已。第14章介紹了Matplotlib嵌入到GUI界面中編程的基本原理,還詳細介紹了Matplotlib繪圖的主要元素的面向?qū)ο蟛僮鞣椒ā⒔换ナ讲僮鞣椒ǎ€設(shè)計了一個自定義繪圖組件類QmyFigureCanvas,可直接在界面可視化設(shè)計時使用,可直接應(yīng)用于用戶自己的程序設(shè)計。

盡善盡美之作《Python Qt GUI與數(shù)據(jù)可視化編程》_第3張圖片

圖14-4 示例Demo14_2運行時界面。將Matplotlib的繪圖功能嵌入到GUI程序中,并且對圖的各個組成元素的面向?qū)ο缶幊滩僮鬟M行了詳細的介紹

4. 以完整示例講解編程方法,提供兩套示例程序

本書延續(xù)《Qt 5.9 C++開發(fā)指南》一書的風(fēng)格,以大量完整示例程序為基礎(chǔ)講解編程原理,這些示例分散在各個章節(jié)中。本人一貫認為,沒有完整示例的編程書籍就是忽悠人的。只有自己做過一遍示例程序,才可以深入地理解和掌握編程中的一些細節(jié)問題,講解也就更加有針對性。學(xué)習(xí)編程也是一樣,只是拿示例程序跑一遍、看一遍是難以完全掌握的,必須自己動手做一遍才能真正學(xué)會。

本書提供兩套示例程序。一套是具有全部源碼的程序,包括Qt項目、UI窗體、Python程序等,其中的Python程序可以直接運行,顯示示例運行結(jié)果。

另外一套是只有UI窗體的不完整程序,包括Qt項目、UI窗體、Python程序框架,其中的Python程序文件只有基本框架,沒有功能實現(xiàn)代碼。這套程序是為了便于讀者使用已經(jīng)設(shè)計好的UI窗體,根據(jù)書中介紹的過程和內(nèi)容,在Python程序框架里自己編寫程序,逐步實現(xiàn)功能。這樣的學(xué)習(xí)過程就具有可操作性。

以下是本書中一些示例的運行界面。

盡善盡美之作《Python Qt GUI與數(shù)據(jù)可視化編程》_第4張圖片

圖3-10 示例Demo3_7運行時界面。使用QAction設(shè)計主窗口的菜單欄、工具欄,可視化與代碼結(jié)合的界面設(shè)計方法,QPlainTextEditor文字編輯功能等

?

盡善盡美之作《Python Qt GUI與數(shù)據(jù)可視化編程》_第5張圖片

圖13-11 示例Demo13_3繪制的三維曲面圖。使用PyQtDataVisualization中的類繪制三維曲面圖

?

盡善盡美之作《Python Qt GUI與數(shù)據(jù)可視化編程》_第6張圖片

圖14-9? 示例Demo14_3運行時界面。Matplotlib繪圖工具欄的改造與交互式操作

后記

我們寫這本書只是因為發(fā)現(xiàn)市面上沒有這個主題的好書,覺得有必要寫一本。寫這本書沒有什么項目支持,沒有deadline要求,因而能精耕細作,仔細打磨,希望寫出一本比較完美的書。現(xiàn)在書已正式出版,算不算得上一本好書,就留給讀者和市場,還有時間來檢驗了。

附:三位作者簡介

  • 王維波(博主),博士,中國石油大學(xué)(華東)教師,從事測控技術(shù)與儀器專業(yè)相關(guān)的教學(xué)工作,主要研究地球物理探測儀器開發(fā)、監(jiān)測數(shù)據(jù)處理方法和軟件開發(fā)。精通軟硬件開發(fā),已出版《Qt 5.9 C++開發(fā)指南》一書。
  • 栗寶鵑,博士,某大型單位科研人員,主要從事地球物理、水下探測、遙感等專業(yè)方向的數(shù)據(jù)處理和圖像識別方面的研究工作,在日常工作中使用Qt和Python解決實際問題。
  • 張曉東,博士,中國石油大學(xué)(華東)教師,從事自動化專業(yè)相關(guān)的教學(xué)工作,研究方向主要是優(yōu)化算法、最優(yōu)控制和智能控制。具有豐富的算法編程經(jīng)驗,善于通過Qt C++和Python結(jié)合提高算法效率。

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 宁海县| 长治县| 青铜峡市| 嘉荫县| 宣汉县| 隆化县| 寿阳县| 竹溪县| 台南市| 门源| 巴中市| 平原县| 东港市| 抚宁县| 潜山县| 花莲市| 临邑县| 平乐县| 鹤岗市| 中西区| 广东省| 望都县| 资兴市| 吉林省| 桐柏县| 叶城县| 明水县| 宾阳县| 邵阳县| 和政县| 大城县| 宽甸| 满城县| 湟中县| 天祝| 雅江县| 卫辉市| 临沂市| 虹口区| 佳木斯市| 海口市|