如何5天學會一種 Python 圖形界面框架

契子

州的先生學習 Python 是在 2013 年先後,那時候的不只各類學習資料匱乏,還有 Python2 與 Python3 之間的鬥爭。程序員

從當年的程序員小衆腳本語言,到現在火熱的全民編程首選。Python 的生態逐漸豐富。適用於各個場景的第三方庫也目不暇接地發佈、迭代和完善。web

有本身工做和學習需求的人,可能就能夠直接拿來提升效率了,可是仍是有不少人在掌握了 Python 的基礎知識以後,急需一種可以帶來及時正向反饋的模塊來延續本身的編程之路。編程

一大部分的人選擇經過學習 Python 的圖形界面寬框架來讓本身的 Python 學習之路顯得不那麼枯燥,寫出來的小玩意兒可以看得見、點得着。讓本身寫的程序變成一個普通人認知裏的程序軟件,這帶來的及時反饋和成就感能夠說會不斷激發學習的興趣。瀏覽器

而在 Python 的生態裏,圖形界面開發框架說多很少,說少也很多,像主流的就有:微信

  • Tkinter多線程

  • PyQt5框架

  • PySide2ide

  • WxPython佈局

  • Kivy性能

這些框架各有優缺點,好比 Tkinter 是 Python 的內置框架,不須要額外的安裝,對 Python 初學者來講,不用愁心各類模塊的安裝失敗,缺點則是組件只能知足基本需求。

而 PyQt5PySide2WxPython 這些框架則組件豐富、功能強大;

至於 Kivy,則是一個全平臺的圖形界面開發框架,上述幾個框架只能用於編寫桌面圖形界面程序,而 Kivy 則能夠打包爲 Windows、Linux、MacOS、Android、IOS 等全平臺的軟件。

顯然將來還會有更多的 Python 圖形界面框架誕生。

面對如此衆多的框架,初學者不免會不知所措。生怕學了一個框架,之後卻用不着。

州的先生在本身學習 Python 圖形界面開發的過程,踩過了不少坑,也吸取了不少的經驗。

在此借鑑 13 年看過的一篇文章《5 天學會一種 web 開發框架》,給出一個 5 天學會一種 Python 圖形界面框架的經驗,但願能給初學者一絲幫助,讓其能從繁雜的 API 和文檔中解放出來,學會通常邏輯和核心結構,事半功倍地掌握和學習新的框架。

清單

基礎篇

基礎篇主要涉及一個框架的運行方式,要了解其程序經過哪一種方式來運行,其內容包括:

  • 如何運行一個基礎的圖形界面程序?

  • 若是實現一個主窗口程序的運行?

基礎組件篇

在瞭解了一個圖形界面應該如何運行以後,咱們就能夠在其窗口內添加各類組件了,基礎組件是一個任何一個圖形界面都包含的模塊,好比:

  • 單行文本輸入框;

  • 按鈕;

  • 文本;

  • 單選框;

  • 多選框;

  • 多行文本輸入框;

  • 表格;

  • 列表;

也有一些複合型的組件,好比:

  • 選項卡;

  • 菜單欄;

須要瞭解:

  • 如何添加一個基本組件到主窗口?

  • 配合「交互篇」瞭解組件的事件反饋;

佈局篇

一個圖形界面要美觀,其佈局相當重要。咱們不可能把全部的組件雜亂無章地堆放在主窗口中。須要瞭解:

  • 框架中有哪幾種佈局方式?

  • 如何使用某種佈局?

  • 如何將組件放置在佈局中?

交互篇

交互是全部程序的靈魂,若是沒有交互,寫得再漂亮的圖形界面也僅僅是一個圖形界面而言。交互所實現的,是圖形界面與工做代碼之間的聯繫。這些交互包括各類組件的點擊、輸入、顯示、隱藏等。

須要瞭解:

  • 基礎的組件都有哪些事件(信號)能夠被捕獲?

  • 捕獲的事件(信號)須要如何進行操做?

性能篇

對於圖形界面程序來講,一個程序啓動以後就佔用了一個進程,若是咱們後臺有任務須要處理,好比某個按鈕點擊了以後,須要下載一個幾百兆的文件,那麼程序的主界面在下載任務執行的過程當中就會被阻塞。爲了更好的性能,咱們須要瞭解:

  • 如何在框架中使用多線程?

  • 如何在框架中使用多進程?

  • 框架中的多線程、多進程如何進行通訊?

高級組件篇(可選)

高級組件表示,這個框架有,那個框架可能沒有。好比:

  • 繪圖

  • SQL

  • 瀏覽器

高級組件能夠參照基礎組件的點,查看文檔瞭解其特性和使用方式;

樣式篇(可選)

全部的圖形界面框架都會爲組件提供一個基礎的樣式,可是若是有定製化的需求,這些基礎樣式可能就知足不了要求。這時候就須要進行樣式的調整,須要瞭解:

  • 框架是否支持自定義樣式?

  • 框架支持哪些自定義樣式的形式?

  • 如何使用這些自定義樣式方法?

打包篇(可選)

程序寫好以後,咱們還須要將其打包爲特定平臺上的程序包,好比 Windows 上的 exe、安卓上的 apk 等。須要瞭解:

  • 框架支持哪些打包方式;

  • 框架支持打包到哪些平臺?

最後

其實,使用圖形界面框架編寫和開發圖形界面程序,就像是搭積木。咱們先掌握好總體的結構,再根據須要將特定的積木拼接在一塊兒,若是對某塊積木的功能不甚瞭解,那麼能夠翻閱其說明文檔以瞭解使用。

而非頭痛醫頭、腳痛醫腳,盲人摸象般的去使用框架。

按照上述的清單,掌握圖形界面框架開發的總體和結構,剩下的,就交給時間和練習吧。

祝你們都能寫出好看、強大的圖形界面程序。


本文分享自微信公衆號 - 州的先生(zmister2016)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索