本書共分為6章。第1章GUI編程, 主要包括GUI簡介和GUI的開發(fā)工具包等知識點; 第2章Tkinter, 主要包括Tkinter的安裝、Misc類、Wm類、主窗口、控件、布局管理器、事件處理、對話框和ttk模塊等知識點; 第3章wxPython, 主要包括wxPython的安裝、wxPython的基本要素、應用程序、窗口、控件、布局管理器、事件處理、消息對話框、網(wǎng)格和滾動面板等知識點; 第4章游戲編程, 主要包括游戲編程簡介和游戲的開發(fā)工具包等知識點; 第5章PyGame, 主要包括PyGame的安裝、PyGame的基礎(chǔ)知識、Surface對象、Rect對象、窗口圖層、圖片加載、圖片變形、圖片蒙版、圖形繪制、文本顯示、時間控制、事件處理、精靈、精靈組、碰撞檢測、音效和音樂等知識點; 第6章Cocos2d, 主要包括Cocos2d的安裝、Cocos2d的基礎(chǔ)知識、導演、節(jié)點、事件、粒子系統(tǒng)、動作、音效和音樂等知識點。
隨著互聯(lián)網(wǎng)的快速崛起,眾多編程語言進入了大眾的視野。尤其是目前的大數(shù)據(jù)、人工智能等技術(shù)領(lǐng)域更是火遍大江南北,幾乎每天都可以從各種新聞報道中看到它們的身影,相關(guān)工作崗位所需要的技術(shù)人才更是一度出現(xiàn)供不應求的現(xiàn)象,而Python正是實現(xiàn)上述技術(shù)的最佳編程語言。
Python橫跨多個互聯(lián)網(wǎng)核心技術(shù)領(lǐng)域,并且以其簡單高效的特點,被廣泛應用于各種應用場景,包括GUI開發(fā)、游戲開發(fā)、Web開發(fā)、運維自動化、科學計算、數(shù)據(jù)可視化、數(shù)據(jù)挖掘及人工智能等。
此外,隨著國家對未來的人工智能等技術(shù)領(lǐng)域的重視和布局,更凸顯出Python的重要地位。從2018年起,浙江省信息技術(shù)教材啟用Python,放棄VB,這一改動也意味著Python將成為浙江省高考內(nèi)容之一。更有前瞻性的是,山東省最新出版的小學信息技術(shù)教材,在六年級課本中也加入了Python的相關(guān)內(nèi)容——終于,小學生也開始學習Python了!
本書正是在這樣的背景之下應運而生。本書是Python全棧開發(fā)系列的第2冊,全書共分為6章,重點講解GUI編程和游戲編程的四大主流模塊,即Tkinter、wxPython、PyGame和Cocos2d,并搭配200多個示例代碼和4個綜合項目,理論知識與實戰(zhàn)開發(fā)并重,可以幫助讀者快速、深入地理解和應用GUI編程和游戲編程的相關(guān)技術(shù)。
著名的華人經(jīng)濟學家張五常曾經(jīng)說過,“即使世界上99%的經(jīng)濟學論文沒有發(fā)表,世界依然會發(fā)展成現(xiàn)在的樣子”,而互聯(lián)網(wǎng)時代的發(fā)展同樣具有其必然性,所以要想成功,我們就必須順勢而為,真正地站穩(wěn)在時代的風口之上。
勘誤
在本書的編寫過程中,筆者始終本著科學、嚴謹?shù)膽B(tài)度,力求精益求精,但書中難免存在疏漏之處,懇請廣大讀者批評指正。
致謝
首先,感謝每位讀者,感謝你在茫茫書海中選擇了這本書,筆者衷心地祝愿各位讀者能夠借助本書學有所成,并最終順利地完成自己的學習目標、學業(yè)考試和職業(yè)選擇。
其次,感謝筆者的導師、同事、學生和朋友,感謝他們不斷地鼓勵和幫助筆者,非常榮幸能夠和這些聰明、勤奮、努力、踏實的人一起學習、工作和交流。
最后,感謝筆者的父母,是他們給予了我所需要的一切,沒有他們無私的愛,就沒有筆者今天的事業(yè),更不能達成我的人生目標!
此外,本書在編寫和出版過程中得到了來自沈陽工業(yè)大學的牛連強教授、大連東軟信息學院的張明寶副教授、大連華天軟件有限公司的陳秋男先生、51CTO學堂的曹亞莉女士、印孚瑟斯技術(shù)(中國)有限公司的崔巍先生和清華大學出版社的趙佳霓編輯的大力支持和幫助,在此表示衷心的感謝。
夏正東
2022年2月22日于遼寧省大連市
夏正東,十余年一線軟件開發(fā)經(jīng)驗,長期從事于Web系統(tǒng)、GUI開發(fā)框架以及數(shù)據(jù)分析等領(lǐng)域的研發(fā)和教學工作,精通Python、PHP、Web前端以及Linux等技術(shù),曾就職于東軟、金山以及電訊盈科等公司,并在遼寧部分高校和企業(yè)擔任外聘計算機講師和資深企培講師等職務(wù),后自主創(chuàng)業(yè)至今,任大連科匯融創(chuàng)科技有限公司副總經(jīng)理,分管研發(fā)和企培等工作。
目錄
第1章GUI編程
1.1GUI簡介
1.1.1GUI的特點
1.1.2GUI的設(shè)計原則
1.2GUI的開發(fā)工具包
第2章Tkinter
2.1Tkinter的安裝
2.2Misc類和Wm類
2.3主窗口
2.4控件
2.4.1跟蹤控件的值
2.4.2標簽(Label類)
2.4.3按鈕(Button類)
2.4.4單選按鈕(Radiobutton類)
2.4.5多選按鈕(Checkbutton類)
2.4.6文本輸入框(Entry類)
2.4.7下拉菜單(OptionMenu類)
2.4.8列表框(Listbox類)
2.4.9靜態(tài)框(LabelFrame類)
2.4.10微調(diào)節(jié)器(Spinbox類)
2.4.11滑塊(Scale類)
2.4.12消息(Message類)
2.4.13文本(Text類)
2.4.14滾動條(Scrollbar類)
2.4.15框架(Frame類)
2.4.16頂級窗口(Toplevel類)
2.4.17菜單欄(Menu類)
2.5布局管理器
2.5.1pack布局管理器
2.5.2grid布局管理器
2.5.3place布局管理器
2.6事件處理
2.6.1事件處理的4要素
2.6.2事件序列
2.6.3事件綁定
2.6.4事件
2.6.5系統(tǒng)級事件
2.7對話框
2.7.1消息對話框
2.7.2文件對話框
2.7.3顏色選擇對話框
2.8ttk模塊
2.8.1主題和樣式
2.8.2控件
2.9項目實戰(zhàn): 文本編輯器
2.9.1程序概述
2.9.2程序編寫
第3章wxPython
3.1wxPython的安裝
3.2wxPython的基本要素
3.3應用程序
3.4窗口
3.4.1框架(Frame類)
3.4.2內(nèi)容面板(Panel類)
3.4.3菜單欄(MenuBar類)
3.4.4分隔窗口(SplitterWindow類)
3.5控件
3.5.1靜態(tài)文本(StaticText類)
3.5.2文本輸入框(TextCtrl類)
3.5.3普通按鈕(Button類)
3.5.4位圖按鈕(BitmapButton類)
3.5.5開關(guān)按鈕(ToggleButton類)
3.5.6單選按鈕(RadioButton類)
3.5.7單選框(RadioBox類)
3.5.8復選框(CheckBox類)
3.5.9可編輯下拉菜單(ComboBox類)
3.5.10不可編輯下拉菜單(Choice類)
3.5.11列表框(ListBox類)
3.5.12靜態(tài)框(StaticBox類)
3.5.13靜態(tài)圖像(StaticBitmap類)
3.5.14靜態(tài)直線(StaticLine類)
3.5.15微調(diào)節(jié)器(SpinCtrl類)
3.5.16滑塊(Slider類)
3.5.17樹(TreeCtrl類)
3.5.18工具欄(ToolBar類)
3.5.19狀態(tài)欄(StatusBar類)
3.6布局管理器
3.6.1BoxSizer布局管理器
3.6.2StaticBoxSizer布局管理器
3.6.3GridSizer布局管理器
3.6.4FlexGridSizer布局管理器
3.7事件處理
3.7.1事件處理的4要素
3.7.2事件
3.8消息對話框
3.9網(wǎng)格
3.10滾動面板
3.11項目實戰(zhàn): QQ
3.11.1程序概述
3.11.2創(chuàng)建數(shù)據(jù)庫
3.11.3程序目錄結(jié)構(gòu)
3.11.4程序編寫
第4章游戲編程
4.1游戲編程簡介
4.2游戲的開發(fā)工具包
第5章PyGame
5.1PyGame的安裝
5.2PyGame的基礎(chǔ)知識
5.2.1基本概念
5.2.2坐標系
5.2.3基本開發(fā)流程
5.3Surface對象和Rect對象
5.3.1Surface對象
5.3.2Rect對象
5.4窗口圖層
5.5圖片加載
5.6圖片變形
5.7圖片蒙版
5.8圖形繪制
5.9文本顯示
5.9.1pygame.font模塊
5.9.2pygame.freetype模塊
5.10時間控制
5.11事件處理
5.11.1事件和事件隊列
5.11.2窗口事件
5.11.3鍵盤事件
5.11.4鼠標事件
5.11.5自定義事件
5.12精靈、精靈組和碰撞檢測
5.12.1精靈和精靈組
5.12.2碰撞檢測
5.13音效和音樂
5.13.1音效
5.13.2音樂
5.14項目實戰(zhàn): 五子棋
5.14.1程序概述
5.14.2程序編寫
第6章Cocos2d
6.1Cocos2d的安裝
6.2Cocos2d的基礎(chǔ)知識
6.2.1基本元素
6.2.2坐標系
6.2.3基本開發(fā)流程
6.3導演(Director類)
6.4節(jié)點(CocosNode類)
6.4.1場景(Scene類)
6.4.2圖層(Layer類)
6.4.3精靈(Sprite類)
6.4.4菜單(Menu類)
6.5事件
6.5.1鍵盤事件
6.5.2鼠標事件
6.6粒子系統(tǒng)
6.7動作(Action類)
6.7.1瞬時動作
6.7.2間隔動作
6.8音效和音樂
6.8.1Pyglet
6.8.2Pygame/SDL
6.9項目實戰(zhàn): 飛機大戰(zhàn)
6.9.1程序概述
6.9.2程序目錄結(jié)構(gòu)
6.9.3程序編寫