Python常用GUI框架原理解析匯總
Graphical User Interface,簡稱 GUI,又稱圖形化用戶接口,所謂的GUI編程,指的是用戶不需要輸入代碼指令,只通過圖形界面的交互就可以操作軟件功能。
Tkinter
一個輕量級的跨平臺圖形用戶界面(GUI)開發(fā)工具,是Python的自帶的官方標準庫,安裝Python 之后直接導入就可以使用, 我們常見的python IDLE就是使用TKinter實現(xiàn)。
它最大的特點就是上手簡單, 做個簡單的小工具基本夠用了,比如登錄,計算器,簡單的輸入輸出工具等,缺點是不夠美觀,功能太單一。
Pyqt
QT是一個C ++編寫的跨平臺的框架。這是一個非常全面的庫。1991年奇趣科技公司開發(fā)的C++ GUI應用程序,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,這個設計器可以方便我們進行頁面的布局,可以說在Tkinter里面需要一坨坨的代碼完成的頁面布局,在QT里面只要拖一拖控件就搞定了。
wxPython
wxPython 是一款開源軟件,是 Python 語言的一套優(yōu)秀的 GUI 圖形庫,允許 Python 程序員很方便的創(chuàng)建完整的、功能健全的 GUI 用戶界面。
wxPython開源免費,支持LINUX和WINDOWS,界面本地化好, 功能完善,它也提供類似QT Designer的設計器wxFormbuilder,可以說是個壓縮版的QT。
PySide
使用“C++”語言編寫的應用程序/用戶界面(UI)框架。“PySide”是“Qt”的封裝。與PySide的不同之處在于PyQt可以商用。
PyGUI
減少Python應用與平臺底層GUI之間的代碼量,面向Unix,Macintosh和Windows平臺。
Kivy
基于OpenGL ES 2,能夠讓使用相同源代碼創(chuàng)建的程序能跨平臺運行。這個框架是事件驅動的,基于主循環(huán),非常適合開發(fā)游戲。
Kivy擁有能夠處理動畫、緩存、手勢、繪圖等功能。它還內置許多用戶界面控件如:按紐、攝影機、表格、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技術,也正因為如此 Flexx 是跨平臺的。只需要有 Python 和瀏覽器就可以運行
CEF Python
基于Google Chromium,面向Windows,MAC OS和Linux,其主要用于在第三方應用程序中嵌入式瀏覽器的使用上
Dabo
一個跨平臺的應用程序開發(fā)框架,基于wxpython的再封裝庫。它提供數(shù)據(jù)庫訪問,商業(yè)邏輯以及用戶界面
Pyforms
一個用于開發(fā)GUI應用程序的Python 2.7 / 3.x跨環(huán)境運行框架。
PyGObject
可以為GNOME項目編寫Python應用程序,你也可以使用GTK +編寫Python應用程序。
關于框架的選擇,沒有最好的,只有最適合的。其他框架的具體使用和介紹,可以查看官方文檔學習:
https://wiki.python.org/moin/GuiProgramming
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. docker容器調用yum報錯的解決辦法2. Java使用Tesseract-Ocr識別數(shù)字3. vue實現(xiàn)web在線聊天功能4. JAMon(Java Application Monitor)備忘記5. Springboot 全局日期格式化處理的實現(xiàn)6. 完美解決vue 中多個echarts圖表自適應的問題7. SpringBoot+TestNG單元測試的實現(xiàn)8. Django使用HTTP協(xié)議向服務器傳參方式小結9. HTML基本語法和語義寫法規(guī)則與實例10. 使用Node.js實現(xiàn)Clean Architecture方法示例詳解
