Python常用GUI框架原理解析匯總
Graphical User Interface,簡稱 GUI,又稱圖形化用戶接口,所謂的GUI編程,指的是用戶不需要輸入代碼指令,只通過圖形界面的交互就可以操作軟件功能。
Tkinter
一個輕量級的跨平臺圖形用戶界面(GUI)開發(fā)工具,是Python的自帶的官方標(biāo)準(zhǔn)庫,安裝Python 之后直接導(dǎo)入就可以使用, 我們常見的python IDLE就是使用TKinter實現(xiàn)。
它最大的特點就是上手簡單, 做個簡單的小工具基本夠用了,比如登錄,計算器,簡單的輸入輸出工具等,缺點是不夠美觀,功能太單一。
Pyqt
QT是一個C ++編寫的跨平臺的框架。這是一個非常全面的庫。1991年奇趣科技公司開發(fā)的C++ GUI應(yīng)用程序,2014年發(fā)布了Qt5.3正式版。
PyQt是Qt庫的Python版本,它有超過300類,將近6000個函數(shù)和方法。它是一個多平臺的工具包,可以運行在所有主要操作系統(tǒng)上,包括UNIX,Windows和Mac。PyQt采用雙許可證,開發(fā)人員可以選擇GPL和商業(yè)許可。在此之前,GPL的版本只能用在Unix上,從PyQt的版本4開始,GPL許可證可用于所有支持的平臺。
QT帶來的最大好處就是它有一個QT Desiginer,這個設(shè)計器可以方便我們進行頁面的布局,可以說在Tkinter里面需要一坨坨的代碼完成的頁面布局,在QT里面只要拖一拖控件就搞定了。
wxPython
wxPython 是一款開源軟件,是 Python 語言的一套優(yōu)秀的 GUI 圖形庫,允許 Python 程序員很方便的創(chuàng)建完整的、功能健全的 GUI 用戶界面。
wxPython開源免費,支持LINUX和WINDOWS,界面本地化好, 功能完善,它也提供類似QT Designer的設(shè)計器wxFormbuilder,可以說是個壓縮版的QT。
PySide
使用“C++”語言編寫的應(yīng)用程序/用戶界面(UI)框架?!癙ySide”是“Qt”的封裝。與PySide的不同之處在于PyQt可以商用。
PyGUI
減少Python應(yīng)用與平臺底層GUI之間的代碼量,面向Unix,Macintosh和Windows平臺。
Kivy
基于OpenGL ES 2,能夠讓使用相同源代碼創(chuàng)建的程序能跨平臺運行。這個框架是事件驅(qū)動的,基于主循環(huán),非常適合開發(fā)游戲。
Kivy擁有能夠處理動畫、緩存、手勢、繪圖等功能。它還內(nèi)置許多用戶界面控件如:按紐、攝影機、表格、Slider和樹形控件等。
PyGTK -GTK
在Linux中常用的“GTK+”是“PyGTK”的“GTK +”封裝。與Kivy和PyQt相比,它能不加修改的穩(wěn)定運行在各種操作系統(tǒng)之上,如Linux,Windows,MacOS等。
Flexx
許多Python GUI庫基于以其他語言編寫的庫,例如用C++編寫的庫有wxWidgets和libavg。但Flexx是用Python創(chuàng)建的,使用Web技術(shù),也正因為如此 Flexx 是跨平臺的。只需要有 Python 和瀏覽器就可以運行
CEF Python
基于Google Chromium,面向Windows,MAC OS和Linux,其主要用于在第三方應(yīng)用程序中嵌入式瀏覽器的使用上
Dabo
一個跨平臺的應(yīng)用程序開發(fā)框架,基于wxpython的再封裝庫。它提供數(shù)據(jù)庫訪問,商業(yè)邏輯以及用戶界面
Pyforms
一個用于開發(fā)GUI應(yīng)用程序的Python 2.7 / 3.x跨環(huán)境運行框架。
PyGObject
可以為GNOME項目編寫Python應(yīng)用程序,你也可以使用GTK +編寫Python應(yīng)用程序。
關(guān)于框架的選擇,沒有最好的,只有最適合的。其他框架的具體使用和介紹,可以查看官方文檔學(xué)習(xí):
https://wiki.python.org/moin/GuiProgramming
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. idea給項目打war包的方法步驟2. Jsp中request的3個基礎(chǔ)實踐3. 怎樣才能用js生成xmldom對象,并且在firefox中也實現(xiàn)xml數(shù)據(jù)島?4. XML入門的常見問題(一)5. Django程序的優(yōu)化技巧6. Python多線程操作之互斥鎖、遞歸鎖、信號量、事件實例詳解7. idea設(shè)置自動導(dǎo)入依賴的方法步驟8. jsp EL表達式詳解9. IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實現(xiàn)10. Django ORM實現(xiàn)按天獲取數(shù)據(jù)去重求和例子
