-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Python Qt GUI快速編程——PyQt編程指南

( 簡體 字)
作者:閆鋒欣等類別:1. -> 程式設計 -> Python
   2. -> 作業系統 -> Linux -> QT
譯者:
出版社:電子工業出版社Python Qt GUI快速編程——PyQt編程指南 3dWoo書號: 45143
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:8/1/2016
頁數:460
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121298066
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

譯者序
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)為譯者提供了寬松且安心舒適的工作環境。
由于書中概念和術語數目繁多,加之譯者水平所限,譯稿中難免存在曲解或誤解作者原意的地方,懇請讀者諒解。

閆鋒欣
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應用程序的一件理想工具,無論是用做原型設計還是用做最終的產品。
由于本書的重點是有關GUI編程的,第一部分會像其他PyQt文獻一樣也給出一個Python快速入門教程。在本書的第二部分、第三部分和第四部分,都與PyQt相關并會假定讀者已經可以用Python編程,無論是前期的經驗,還是從第一部分中閱讀而來的。
在編程時,當有數種可能采用的可行方法時就會經常遇到決策點(decisionpoint)。參閱書籍和網上文獻來識別出可用的那些類、方法和函數,還可以參考某些情況下所給出的示例,但那樣的文獻很少會給出一個上下文背景(broadercontext)。本書則會給出必要的上下文背景,強調那些用于GUI編程的決策點,深入解析器優劣,以便讓讀者自行決斷特定情況下的正確策略。例如,在創建對話框的時候,應該是使用模態(modal)對話框還是非模態(modeless)對話框(請參閱第5章中有關這一主題的解釋說明和推薦策略中的內容)。
PyQt可用于編寫各類GUI應用程序,從會計類應用程序到被科學家和工程師所使用的各種可視化工具。例如,在圖1中,給出了一個示例Eric4,這是一個使用PyQt編寫的強大集成開發環境。編寫一個僅有10行代碼長短的PyQt應用程序,或者也有可能是編寫一個擁有1000~10000行PyQt代碼的中型工程,都已司空見慣。某些商業公司利用從一個人到數十人不等的編程團隊,已經構建出超過100000行代碼的PyQt應用程序。許多公司內部使用的工具就是用PyQt編寫的,但由于這些工具通常是直接用于獲利的,相關公司一般不會將自己使用PyQt的事情公之于眾。PyQt也會廣泛用于開源世界,包括游戲、應用設施、可視化工具和各類集成開發環境(IDE)等都會用到它。
圖1Eric4集成開發環境,是一個PyQt4應用程序
本書重點放在PyQt4和用于Qt4C++應用程序開發框架對于較老的Qt3庫也有Python綁定,但在新的工程項目中沒有理由再去使用該庫,特別是自Qt4以來,又提供了更多的功能和更為簡單的使用方法。的Python綁定上。會以10個Python模塊的形式給出PyQt4,在這些模塊中會大約含有400個類和6000個左右的方法和函數。所有樣例程序均已使用Python2.5、Qt4.2和PyQt4.2在Windows、Linux和MacOSX上進行了測試。此外,在Windows和Linux上,還使用Qt4.3和PyQt4.3進行了測試。某些情況下,還有可能可以回溯到以前更早期的版本,但還是建議盡量使用最新版本的Python、Qt和PyQt。
Python、PyQt和Qt可免費用于非商業用途,但Python所采用的授權則不同于PyQt和Qt的授權。基于較為寬泛的授權條款就可以獲得Python,并可將其用于開發商用或者非商用應用程序。而PyQt和Qt則使用雙重授權模式:這就從本質上使得它們只能用于開發非商用應用程序——相應需要使用一種可接受的開源授權,如GPL(GNUGeneralPublicLicense,GNU通用公共授權);或者用于開發商業程序,此時,就必須要分別購買商業版的PyQt授權和商業版的Qt授權。
本書的結構
本書共分四個部分。第一部分是快速轉換課程,主要面向那些熟悉面向對象語言的非Python編程人員,盡管會有一點PyQt的內容。這是因為核心的Python語言非常簡單并且相當小巧,這些章節會講述一些Python的基礎知識,以便能夠為編寫真正的Python應用程序做好準備。
如果認為自己可以通過閱讀一些Python程序就能夠了解Python語法的話,不妨直接跳過第一部分并轉入第二部分前面有關GUI編程的那些章節。第二部分的開頭章節會向前引用一些位于第一部分相關頁碼的內容,以便為讀者選擇該方法提供支撐依據。然而,即使是熟悉Python的那些讀者,也還是建議能夠閱讀一下第1章中QString的相關內容。如果您對偏函數應用程序(partialfunctionapplication,即currying在計算機科學領域,偏函數應用程序是指通過固定原函數的一部分參數生成新函數的過程,新函數的參數數目會少于原函數;currying是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,返回接受余下的參數并返回結果的新函數。currying和偏函數應用程序有些關系,實為兩個并不完全相同的概念——譯者注。)并不熟悉,那么閱讀第2章中有關小節的相關內容就非常重要了,因為這一技術某些時候是會用在GUI編程中的。
第二部分一開始通過三個極小的PyQtGUI應用程序樣例,以形成PyQt編程的一個初始印象。其中也會給出一些用于GUI編程基本概念的說明,包括PyQt的高級信號和槽的通信機制。第5章會說明如何創建對話框,也會說明如何創建和布局對話框中的各個窗口部件〔widget,在Windows中稱為控件(control),是用來構成用戶界面的一些圖形元素,如按鈕、列表框等〕。對話框是GUI編程的核心內容:多數GUI應用程序都有單一的主窗口、數個或者數十個對話框,因而這部分內容會深入講解。
對話框之后就到了第6章,這里會涉及一些主窗口,包括菜單、工具欄、停靠窗口和鍵盤的快捷鍵,還會包括一些有關應用程序設置的加載和保存方面的內容。第二部分的剩余章節會講述如何使用Qt設計師(QtDesigner)和Qt的可視化設計工具,還會講述如何用二進制、文本和XML的格式來存儲數據的知識。
第三部分會對第二部分中已有的一些主題進一步深入,還會引入一些新的主題。第9章會講述如何以相當煩瑣的方式來布局窗口部件,并會講述如何處理多文檔。第10章會講述一些低級事件處理器(eventhandler),還會講述如何使用剪切板(clipboard)和拖拽、文本、HTML及二進制數據。第11章給出了如何對已有的窗口部件進行修改和子類化,還會講述如何用scratchScratch是一種新的編程語言,據說是面向中小學生,可認為是一種基于Squeak并用其實現的可視化程序設計語言——譯者注。創建一些全新的窗口部件,并可以完全控制它們的外觀和行為。這一章還會給出一些圖形基礎的示例。第12章會講述如何使用Qt4.2的圖形視圖架構,它尤其適合用來處理大量的獨立圖形對象。Qt的HTMLRich文本引擎處理能力會在第13章中講述。這一章還會包括一些打印到紙張和PDF文件的內容。
第三部分中與模型/視圖(model/view)相關的章節有兩章:第14章會介紹該主題,并會展示一些如何使用Qt內置視圖的方法,用以創建自定義數據模型和自定義代理(delegate);第15章會講述如何使用模型/視圖架構來執行數據庫編程。
第四部分繼續模型/視圖這一主題,會在第16章中給出三個不同的模型/視圖的用法。第17章的17.1節會介紹一些用于提供在線幫助的技術,17.2節會講述如何來國際化一個應用程序,包括如何來使用Qt的翻譯工具創建翻譯文件等。Python標準庫提供了一些用于網絡化和多線程化的自有類,但在第四部分的最后兩章,還是會給出一些網絡化和多線程化時使用了PyQt的類。
附錄A會說明哪些地方可以獲得Python、PyQt和Qt,并說明如何在Windows、MacOSX和Linux上安裝它們。如果安裝了PyQt并試著通過閱讀一些示例代碼做些練習,就會發現PyQt要更易于學習。附錄B給出了一些截圖和一些選取的PyQt窗口部件的簡單介紹,這對于那些GUI編程新手們會很有幫助。附錄C展示了一些PyQt的關鍵類的層次示意圖,這在要知道PyQt提供了哪些類以及它們和誰相關的時候很有用。
如果之前從來就沒有用過Python,那么就應當依次閱讀第1章到第6章。如果已經了解Python,那么至少要閱讀有關字符串方面的規定,然后就可以跳過第2章了(除了2.1節之外,因為這些內容應當熟練掌握)。要相信你對lambda和偏函數應用程序(lambdaandpartialfunctionapplication)并不反感,這些內容都在第2章討論。第3章很有可能也是可以略過的。然后就可以依次閱讀第4章至第6章了。
一旦涉獵了前六章,那么就有了Python的基本知識和PyQt的基礎。
如果打算知道如何使用可視化工具而不是純粹的手工編碼來創建對話框,那么第7章就很有用了,這樣就可以節省出大量的時間。對于文件的處理,則至少要閱讀過第8章的前三節。如果打算對文件進行讀寫,還需要閱讀第8章的8.4節;而如果打算使用XML文件,那么就需要閱讀8.5節。
對于第三部分,至少需要閱讀第10章的10.1節,即事件處理,以及第11章的全部內容。第12章和第13章的13.1節會認為你已經閱讀過PyQt事件處理的內容了,并同時還會認為也閱讀了第11章。在這一部分中,第9章和第14章可以單獨閱讀,但第15章會認為你已經閱讀了第14章。
對于第四部分,在閱讀第16章之前,假設已閱讀了第14章和第15章。而其他章節可單獨閱讀。
如果發現了文字或者示例中的錯誤,或者有其他建議,請發郵件到mark@qtrac.eu,并請在標題欄中備注“PyQtbook”字樣。在本書的主頁會列出一些勘誤信息,其中也可以下載各個樣例和練習題的答案,主頁的網址是:http://www.qtrac.eu/pyqtbook.html。
如果打算參與PyQt社區,就非常值得加入郵件列表了。可以在http://www.riverbankcomputing.com/mailman/listinfo/pyqt找到該郵件列表存檔的鏈接,以便可以看到郵件列表的形式,還可以找到加入郵件列表的表單。Python還有一些郵件列表和其他的活躍社區。
致謝
要感謝很多人,那么就先從參與本書的這些人開始吧。
JasminBlanchette是Trolltech公司的一名高級軟件開發人員,也是一名Qt專家,還是一名好編輯和特立獨行的作家。我曾與他一起合著過兩本C++/Qt的書籍。Jasmin提出了大量的建議和批評,從而極大地提高了本書的質量。
DavidBoddie是Trolltech公司的一名文檔經理,也是一名為PyQt做出過很多貢獻的PyQt活躍開源開發人員。他的投入很大程度上為我保證了所需的各類東西,并會給出一些合理的次序。
RichardChamberlain是Jadu有限公司的合伙人和首席技術官(CTO),該公司主營內容管理。他的反饋和遠見確保了本書能夠在盡可能寬泛的領域內獲得認可。他還幫助精煉和改良了那些用于示例和練習題中的代碼。
TrentonSchulz是一名Trolltech公司的開發人員,也是我之前幾本書中不可多得的審閱人員。對于本書,他帶來了大量的Python和Qt知識,對本書手稿給出了相當多的建議。此外,他還指出了我所遺漏的一些錯誤。
PhilThompson是PyQt的創始人和維護人。他從一開始就很支持本書,甚至還將我們針對本書討論而來的一些結果加入到PyQt的新特性和改進之中。他對改進本書提出了無數的建議,并糾正了書中的很多錯誤和誤解。
尤其感謝SamuelRolland,讓我能夠輕松自在地使用他的Mac筆記本,安裝PyQt,測試示例和截圖。
還要感謝Python的創始人GuidovanRossum,同樣要感謝為Python發展做出了巨大貢獻的Python社區,特別是其各個類庫,是那么有用,那么好用。
同樣要感謝Trolltech公司,開發和維護著Qt,特別感謝Trolltech公司中那些過去和現在的開發人員,他們中的很多人我都曾經與之快樂共事,并始終堅信Qt會是目前已有的最好跨平臺GUI開發框架。
特別感謝Lout排版語言的創始人JeffKingston。我在自己的全部書籍和大部分著述工程中都使用了Lout。在這些年中,Jeff依據用戶的建議對Lout做出了很多改進并增加了許多新特性,其中就包括了許多我曾自問的東西。也要感謝JamesCloos,他是DejaVuSansMono字體(派生自JimLyles的Vera字體)及其壓縮版的創始人,從該字體派生了本書所使用的monospaced字體。
從出版社來說,主編KarenGettman是從最最開始就非常支持本書的。特別感謝我的編輯DebraWilliamsCauley的支持,使得整個出版流程盡可能順暢自如。還要感謝LaraWysong那么好地管理了出版工作,感謝校對人員AudreyDoyle做了那么多的細致工作。
最后,我想感謝我的妻子Andrea。她的愛、忠誠和支持總是給予我力量和希望。
關于作者
MarkSummerfield畢業于威爾士斯旺西大學(theUniversityofWalesSwansea),他曾獲得計算機科學專業的一等榮譽學位。在進入企業之前,曾進行過為期一年的研究生學習階段。在加入Trolltech公司前的多年間,擔任過多個公司的軟件工程師。他有大約三年的時間擔任Trolltech公司的文檔管理產品經理,在這段時期內,創立并編寫了Trolltech公司的技術雜志,QtQuarterly,并與他人共同編寫了C++GUIProgrammingwithQt3一書,之后又編寫了C++GUIProgrammingwithQt4一書。Mark創立了Qtrac有限公司(www.qtrac.eu),在那里他作為獨立撰稿人、編輯和技術顧問(特別是有關C++、Qt、Python和PyQt)。
內容簡介:

本書主要講述如何利用Python和Qt開發GUI應用程序的原理、方法和關鍵技術。本書共分四個部分:第一部分主要講述Python基礎知識,第二部分通過三個例子給出PyQt GUI應用程序的初步印象,第三部分深入講述窗口部件布局、事件處理、窗口部件子類化、Qt圖形架構和Qt的模型/視圖等內容,第四部分介紹國際化、網絡化和多線程化等內容。

目錄:

第一部分 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類的層次
序: