編輯推薦
適讀人群 :本書結構閤理,內容詳實,適閤用作對Python、Qt和PyQt編程感興趣的科教人員和廣大的計算機編程愛好者閱讀,也可作為相關機構的培訓教材。 講解Python基礎知識。
通過三個例子講解PyQt GUI應用程序。
深入講述窗口部件布局、事件處理、窗口部件子類化、Qt圖形架構和Qt的模型/視圖。
介紹國際化、網絡化和多綫程化。
內容簡介
本書主要講述如何利用Python和Qt開發GUI應用程序的原理、方法和關鍵技術。本書共分四個部分:第一部分主要講述Python基礎知識,第二部分通過三個例子給齣PyQt GUI應用程序的初步印象,第三部分深入講述窗口部件布局、事件處理、窗口部件子類化、Qt圖形架構和Qt的模型/視圖等內容,第四部分介紹國際化、網絡化和多綫程化等內容。
作者簡介
閆鋒欣,西北農林科技大學教師,主要從事機械工程設計及自動控製研究,熟練掌握C/C++語言。齣版過多本譯著! Mark Summerfield:Qtrac公司的創始人,獨立的培訓講師、顧問、技術編輯,Go、Python、C++、Qt和PyQt方麵的技術作傢。Summerfield於1993年畢業於英國的威爾士斯旺西大學計算機專業。在加入Trolltech(奇趣科技)之前的幾年時間,他在很多公司擔任軟件工程師的工作。最近幾年,他成為瞭Trolltech的文檔管理員,負責維護1500多頁的Qt在綫文檔,創立瞭並負責編輯Trolltech的技術雜誌Qt Quarterly。
目錄
第一部分 Python編程
第1章 數據類型和數據結構
1.1 執行Python代碼
1.2 變量和對象
1.3 數字和字符串
1.3.1 整數和長整型
1.3.2 浮點數和小數
1.3.3 字節字符串、 Unicode字符串和QString
1.4 集閤
1.4.1 元組
1.4.2 列錶
1.4.3 字典
1.4.4 集
1.5 內置函數
小結
練習題
第2章 控製結構
2.1 條件分支
2.2 循環
列錶解析和生成器
2.3 函數
2.3.1 生成器函數
2.3.2 關鍵字參數的使用
2.3.3 lambda函數
2.3.4 動態函數的創建
2.3.5 偏函數應用程序
2.4 異常處理
小結
練習題
第3章 類和模塊
3.1 實例的創建
3.2 方法和特殊方法
3.2.1 靜態數據、 靜態方法和裝飾器
3.2.2 例: Length類
3.2.3 集閤類
3.2.4 例: OrderedDict類
3.3 繼承和多態
3.4 模塊和多文件應用程序
小結
練習題
第二部分 GUI編程基礎
第4章 GUI編程簡介
4.1 25行的彈齣式鬧鍾
4.2 30行的錶達式求值程序
4.3 70行的貨幣轉換程序
4.4 信號和槽
小結
練習題
第5章 對話框
5.1 簡易對話框
5.2 標準對話框
OK/Cancel型模態對話框
5.3 智能對話框
5.3.1 非模態應用/關閉型對話框
5.3.2 非模態的實時對話框
小結
練習題
第6章 主窗口
6.1 主窗口的創建
6.1.1 動作和按鍵順序
6.1.2 資源文件
6.1.3 創建和使用動作
6.1.4 恢復和保存主窗口的狀態
6.2 用戶動作的處理
6.2.1 文件動作的處理
6.2.2 編輯動作的處理
6.2.3 幫助動作的處理
小結
練習題
第7章 使用Qt設計師
7.1 用戶界麵的設計
7.2 對話框的實現
7.3 對話框的測試
小結
練習題
第8章 數據處理和自定義文件格式
8.1 主窗口的職責
8.2 數據容器的職責
8.3 二進製文件的保存和加載
8.3.1 用QDataStream讀寫
8.3.2 使用pickle模塊讀寫
8.4 文本文件的保存和加載
8.4.1 使用QTextStream讀寫
8.4.2 使用codecs模塊讀寫
8.5 XML文件的保存和加載
8.5.1 XML的寫
8.5.2 用PyQt的DOM類來讀取和解析XML
8.5.3 用PyQt的SAX類讀取和解析XML
小結
練習題
第三部分 中級GUI編程
第9章 布局和多文檔
9.1 布局策略
9.2 Tab標簽頁窗口部件和堆疊窗口部件
9.3 窗口切分條
9.4 單文檔界麵(SDI)
9.5 多文檔界麵(MDI)
小結
練習題第10章 事件、 剪貼闆和拖放
10.1 事件處理機製
10.2 重新實現事件處理程序
10.3 使用剪貼闆
10.4 拖放
小結
練習題第11章 自定義窗口部件
11.1 使用窗口部件樣式錶
11.2 創建復閤窗口部件
11.3 子類化內置窗口部件
11.4 子類化QWidget
11.4.1 例: 分數滑塊
11.4.2 例: 流體混閤窗口部件
小結
練習題第12章 基於項的圖形
12.1 圖形項的自定義和交互
12.2 動畫和復雜形狀
小結
練習題第13章 Rich文本和打印
13.1 Rich文本的編輯
13.1.1 使用QSyntaxHighlighter
13.1.2 Rich文本的行編輯
13.2 文檔打印
13.2.1 圖片的打印
13.2.2 使用HTML和QTextDocument打印文檔
13.2.3 使用QTextCursor和QTextDocument打印文檔
13.2.4 使用QPainter打印文檔
小結
練習題第14章 模型/視圖編程
14.1 使用簡便項窗口部件
14.2 創建自定義模型
14.2.1 實現視圖邏輯
14.2.2 實現自定義模型
14.3 創建自定義委托
小結
練習題第15章 數據庫
15.1 連接數據庫
15.2 執行SQL查詢
15.3 使用數據庫窗體視圖
15.4 使用數據庫錶視圖
小結
練習題
第四部分 高級GUI編程
第16章 高級模型/視圖編程
16.1 自定義視圖
16.2 泛型委托
16.3 樹中錶達錶格數據
小結
練習題
第17章 在綫幫助和國際化
17.1 在綫幫助
17.2 國際化
小結
練習題
第18章 網絡應用
18.1 創建TCP客戶端
18.2 創建TCP服務器
小結
練習題
第19章 多綫程
19.1 創建綫程服務器
19.2 創建和管理次綫程
19.3 實現次綫程
小結
練習題
這並非結束
附錄A 安裝
附錄B PyQt的部分窗口部件
附錄C 部分PyQt類的層次
前言/序言
譯者序
Python是一種麵嚮對象、解釋型程序設計語言,由GuidovanRossum於1989年發明並於1991年發布第一個公開發行版。Python簡潔而清晰的語法,豐富而強大的庫,使其能夠將其他語言編寫代碼模塊(尤其是C/C++)輕鬆聯結在一起,從而在不影響程序性能的前提下,大大降低整個應用程序的開發成本和資源占用。Python自2004年以來,已成為全球最受歡迎的程序設計語言之一,用戶數呈綫性激增,被TIOBE計算機編程語言排行榜評為2010年的年度語言。Python語言在卡耐基?梅隆大學、麻省理工學院、清華大學等國內外高校和科研機構的用戶眾多,也進而推動瞭Python的快速發展。
Qt是一個性能卓越的跨平颱C++圖形用戶界麵應用程序開發框架。自1991年由奇趣科技(Trolltech)推齣至今的25年間,深受業界贊譽,並先後於2008年、2012年被諾基亞(Nokia)和大奇(Digia)收購,實現瞭由單一的桌麵計算機和嵌入式應用領域到全IT行業的轉變。2014年4月,Qt開發團隊正式發布跨平颱的集成開發環境QtCreator3.1.0,實現瞭對iOS的完全支持,新增瞭WinRT、Beautifier等插件,集成瞭基於Clang的C/C++代碼模塊,調整瞭對Android的支持,實現瞭iOS、Android、WP的全麵支持。目前,Qt的用戶已經涵蓋瞭全球眾多知名廠商,如Google、Adobe、IBM、華為、中國移動等,而諸如GoogleEarth、AutoDeskMaya、Opera、KDE、Skype這樣的應用程序大傢也都是耳熟能詳的。
PyQt是Qt與Python的成功融閤,或者也可以認為PyQt是Qt庫的Python版本。PyQt初次發布於1998年,創始人是PhilThompson。PyQt的版本包括支持Qt1到Qt3的PyQt3,支持Qt4的PyQt4和現今支持Qt5的PyQt5。不過,由於Qt開發團隊已經明確宣布自2015年年底後不再支持Qt4,所以對於PyQt的新手來說,最好能夠直接從PyQt5開始學習。
本書是迄今為止最受公眾認可PyQt編程學習用書之一。作者MarkSummerfield在Qt公司初創時期就任職與此,近年來也一直作為Qt和Python開發的知名代碼貢獻者,在兩者中均擁有良好的經驗。Mark在撰寫本書的過程中,就不斷跟蹤Python和Qt的實時發展動態,因而無論是書中的例子和風格,還是課後習題的設置,始終秉承傳授編程思想和原理方法為主、解決和分析技術難點為輔的寫作風格,因而他所撰寫的多部作品都獲得瞭有軟件業界“奧斯卡”之稱的“震撼奬”(JoltAward)。本書與獲奬作品《C++GUIQt4編程》一書的寫作風格類似,案例設置通俗易懂,因而是學習PyQt不可多得的一本好書。
感謝電子工業齣版社的馮小貝編輯。為瞭能夠把握書中的關鍵技術和最新發展,不得不多方求證、字斟句酌,也形成瞭近似電影《瘋狂動物城》中“閃電”先生的工作模式和工作效率,稿件一拖就是一年多的時間。不過,這一年多的時間中,我核對瞭書中的每一處鏈接,驗證瞭它們的有效性;依據作者的勘誤信息,訂正並更新瞭本版圖書中的相應錯誤內容,以確保文字的正確性和可讀性。因此,無論使用的Qt4還是Qt5,無論是Python2.x還是最新的Python3.5.x,絕大部分的內容都可以運行無誤。
我還要感謝參與本書翻譯和審校工作的各位戰友們,感謝你們的鼓勵和支持。大傢的工作分工是:西安交通大學的黃琳雅翻譯瞭第10章、第12章和第13章,北京工商大學的張君施翻譯瞭第8章、第9章、第15章和第17章,西南科技大學的王軍鋒翻譯瞭第1章,西北農林科技大學的張雷鋒翻譯瞭附錄B和附錄C,浙江大學的薛一翻譯瞭第11章,廣東技術師範學院的劉溪翻譯瞭第14章、第16章、第18章和19章,西北農林科技大學的閆鋒欣翻譯瞭本書第2章至第7章以及附錄A、前言和緻謝等剩餘部分。我們還邀請瞭北京交通大學的王海波、武漢深之度科技有限公司的丁江鋒、山東濟南初創公司的王翔凱和徐景亮作為外部審稿人,他們的細緻和耐心,為我們的工作增色不少。
感謝農業部現代農業裝備重點實驗室開放課題(項目編號:201603002)和中央高校基本科研業務費項目(項目編號:Z109021423)為譯者提供瞭寬鬆且安心舒適的工作環境。
書中所用到的示例程序的源代碼可從原書站點www.qtrac.eu(英文)下載,也可直接從站點www.qtcn.org/pyqtbook(中文)下載。有關本書的討論和勘誤信息,也會及時在www.qtcn.org網站公布,並在此嚮網站負責人XChinux錶示感謝。
由於書中概念和術語數目繁多,加之譯者水平所限,譯稿中難免存在麯解或誤解作者原意的地方,懇請讀者諒解。
閆鋒欣
2016年4月24日序
作為PyQt的創始人,非常高興能夠看到本書終於編寫完成瞭。盡管是本書的技術審稿人之一,還是很高興地要承認,自己的確從書中學到瞭不少東西。
PyQt文檔中涵蓋瞭PyQt中各個層次的全部API類。本書則用來講述如何使用這些類,以及如何將這些類組閤起來創建對話框、主窗口和各類應用程序(它們不僅看起來美觀漂亮而且功用良好,沒有任何不良缺陷),使得大傢樂於使用這一編程語言。
我最喜歡這本書的地方在於,即使是用來說明簡單知識點的樣例都顯得極不平凡,並能夠以其正確的方式給齣極富潛力的應用方法。這些不尋常的方法,將可饋贈那些打算把PyQt用於開發更大維度、更高品質應用程序的讀者們。
我從事PyQt的故事可以追溯到20世紀90年代。當時我用過一段時間的Tcl/Tk,但覺得Tk應用程序看起來並不美觀,尤其是當在第一版KDE中看到它運行時所做的那些事時,就打算要使用Python,於是我認為,是把語言的變化和GUI庫的變化結閤起來的時候瞭。
起初,使用瞭一些基於SWIG寫成的封裝類,但隨後就說服瞭自己,應該自己做一套更適閤的封裝工具SWIG是一種簡化腳本語言與C/C++接口的開發工具。簡而言之,SWIG是一個通過包裝和編譯C語言程序來達到與腳本語言通信目的的工具——譯者注。。工作就從創建SIP開始,並在1998年11月發布瞭支持Qt1.41的PyQt0.1版。開發工作自此開始不斷正規起來,不僅與新發布的Qt保持一緻,而且還在不斷拓展PyQt的應用範圍,例如,各類額外的支持工具和改良後的文檔。到2000年時,PyQt2.0就已經可以在Linux和Windows上同時支持Qt2.2瞭。對於Qt3的支持始於2001年,而2002年就支持MacOSX瞭。PyQt4係列始於2006年6月的PyQt4.0,它可以支持Qt4。
我的基本目標是要讓Python和Qt能夠協同工作,這種工作方式要讓Python編程人員覺得非常自然,同時允許他們能夠以C++來做那些像在Python中一樣可以想做的任何事。達到這一點的關鍵在於SIP的開發工作。這就給予瞭一個特殊的代碼生成器,讓我能夠完全控製並確保Python和Qt是始終如一的。
開發和維護PyQt的必要步驟目前都已建立完畢。大多數工作現在都可自動完成,這就意味著,與Trolltech公司的Qt新版本保持同步已不再像從前那樣顯得是個問題,並可相信,PyQt在未來幾年中會依舊嚮前發展Trolltech是挪威的一傢公司,Qt最先源自該公司,先後被諾基亞和大奇(Digia)公司收購。國內一般將其稱為奇趣科技公司——譯者注。。
如今,非常欣慰於能夠目睹PyQt社區在過去的數年中不斷成長。如果此書能夠把您引入PyQt的天地,那麼歡迎您!
—PhilThompson
溫伯恩,多賽特,英國前言
本書主要講述如何利用Python程序語言和Qt應用程序開發框架來開發GUI應用程序。僅需要的一點必備知識是,要能夠使用一些麵嚮對象編程語言來編程,諸如C++、C#、Java,當然,也包括Python自己。在有關Rich文本的章節中,可能還會假定你瞭解瞭HTML和正則錶達式的一些知識;而在數據庫和多綫程的那些章節中,也還會假定你已瞭解瞭相關話題的基本知識。至於GUI編程方麵的知識就不需要瞭,因為書中會包含其相關的所有關鍵概念。
本書將對那些以專業編程為其工作的那些人大有幫助,無論是專業的軟件開發人員,還是其他行業的編程人員,如科學傢、工程師等,都需要通過編程來支撐自己的工作。本書也同樣適用於那些大學生和研究生,他們在課題或者研究工作中上經常需要大量的計算要素。為幫助同學們理解書中講授的內容,還特地提供瞭一些練習題(並給齣瞭這些習題的解答思路)。
Python有可能是世界上廣泛應用的最易學習、最漂亮的腳本語言瞭,而Qt則有可能是開發GUI應用程序最好的庫。Python和Qt的結閤,稱為PyQt,使得在所有支持它們的平颱,如Windows、Linux、MaxOSX和類UNIX係統的各個現有版本上,開發應用程序並且不做任何改變地運行程序成為可能。無須編譯得益於Python這一解釋性腳本語言,而針對不同操作係統都無須更改源代碼的好處則源於Qt的抽象方式,能夠避開那些與平颱相關的細節。我們要做的僅僅就是將寫好的一個或者多個源代碼文件復製到安裝瞭Python和PyQt的目標機器上運行即可。
如果對Python一無所知,那麼歡迎您!您將會探索一門易讀易寫的語言,其語法簡潔而不神秘。Python支持很多編程範式,但由於我們側重於GUI編程,因而將會在除本書最前麵的幾章之外的各處均使用麵嚮對象的編程方法。
Python是一種非常富有錶現力的語言,這就意味著,要完成具有相當功能的應用程序,用Python編寫的代碼要比使用其他諸如C++或者Java等語言的代碼少得多。這就使得通過文本來展示一些小而完整的樣例成為可能,也使得PyQt成為能夠快速並且簡易開發GUI應用程序的一件理想工具,無論是用做原型設計還是用做最終的産品。
由於本書的重點是有關G
Python Qt GUI快速編程:PyQt編程指南 [Rapid GUI Programming with Python and Qt: The Defi] epub pdf mobi txt 電子書 下載 2024
Python Qt GUI快速編程:PyQt編程指南 [Rapid GUI Programming with Python and Qt: The Defi] 下載 epub mobi pdf txt 電子書
Python Qt GUI快速編程:PyQt編程指南 [Rapid GUI Programming with Python and Qt: The Defi] mobi pdf epub txt 電子書 下載 2024
Python Qt GUI快速編程:PyQt編程指南 [Rapid GUI Programming with Python and Qt: The Defi] epub pdf mobi txt 電子書 下載 2024