編程學習網 > 編程語言 > Python > Python 圖形界面框架 PyQt5教程
2023
09-13

Python 圖形界面框架 PyQt5教程

使用Python開發圖形界面的軟件其實并不多,相對于GUI界面,可能Web方式的應用更受人歡迎。但對于像我一樣對其他編程語言你如C#或WPF來說未必不是一個好的工具。

常見GUI框架
PyQt5[1]:Qt[2]是一個跨平臺的 C++圖形用戶界面庫。QT一度被諾基亞擁,后出售給芬蘭的軟件公司Digia Oyj。PyQt5是基于Digia公司Qt5的Python接口,由一組Python模塊構成。PyQt5本身擁有超過620個類和6000函數及方法。在可以運行于多個平臺,包括:Unix, Windows, and Mac OS。
Pyside6[3]:Pyside是QT公司官方提供的Python包,上一版本為Pyside2,對應的是QT5,最新版命名規則進行了調整,更改為Pyside6,對應的是QT6版本。由于官方出品的比較看好,缺點是發布比較晚,網上的資料沒有PyQt5多。
Tkinter[4]:Python內置的GUI框架,使用TCL實現,Python中內嵌了TCL解釋器,使用它的時候不用安裝額外的擴展包,直接import,跨平臺。不足之處在于UI布局全靠代碼實現,只有15種常用部件,顯示效果簡陋。
PySimpleGUI[5]:PySimpleGUI 是 Tkinter 一層包裝。使用 PySimpleGUI 實現自定義 GUI 所需的代碼量要比使用 Tkinter 直接編寫相同的 GUI 要少得多。
WxPython[6]:wxPython是Python語言對流行的wxWidgets跨平臺GUI工具庫的綁定。用得比較廣泛,跨平臺,C++編寫,文檔少,用戶可能就需要根據編程內容對不同平臺中的GUI代碼做一些調整。遇到問題不好解決,代碼布局控件,不直觀。
Wax[7]:基于wxPython ,為克服wxPython的問題而制作的一個包。
Kivy[8]:主要針對多點觸控程序,智能手機平板等,也可以在沒有觸屏功能的系統上,全平臺支持(Windows, Linux, Mac OS X, Android and iOS.)使用Python和cython編寫,中文支持差,需要自己下載中文庫并且制定路徑。
BeeWare[9]:Write once. Deploy everywhere.需要與Kivy配合使用。
Toga[10]:一個使用Python開發原生APP的GUI工具包。Toga由一個具有共享接口的基礎組件庫組成,以簡化與平臺無關的GUI開發。Toga適用于Mac OS、Windows、Linux(GTK)以及Android和iOS等移動平臺。
Eel[11]:一個輕量的 Python 庫,用于制作簡單的類似于 Electron(但是比它更輕量) 的離線 HTML/JS GUI 應用程序,并具有對 Python 功能(capabilities)和庫的完全訪問權限。
Flexx[12]:一個純 Python 工具包,用來創建圖形化界面應用程序。其使用 Web 技術進行界面的渲染。你可以用 Flexx 來創建桌面應用,同時也可以導出一個應用到獨立的 HTML 文檔。因為使用純 Python 開發,所以 Flexx 是跨平臺的。只需要有 Python 和瀏覽器就可以運行。
pywebview[13]是圍繞 webview 組件的輕量型跨平臺包裝器(wrapper),它允許在其自己的本機 GUI 窗口中顯示 HTML 內容。它使您可以在桌面應用程序中使用 Web 技術,同時盡最大可能隱藏使用瀏覽器構建GUI的事實。
enaml[14]:一種能夠讓你用最小的努力就可以實現高質量GUI界面的的Python框架,也是一種獨特的編程語言。enaml將聲明性語言與基于約束的布局系統結合在一起,使用戶可以輕松地定義靈活布局的UI。enaml應用程序可以在任何支持Python和Qt的平臺上運行。
個人想法:太多學不完,先學PyQt5,原因是資料多,學友余力再學pyside6,最后看下PySimpleGUI,看能否解決一些簡單問題。
PyQt5簡介
PyQt是Qt框架的Python語言實現,由Riverbank Computing開發,是最強大的GUI庫之一。PyQt提供了一個設計良好的窗口控件集合,每一個PyQt控件都對應一個Qt控件,因此PyQt的API接口與Qt的API接口很接近,但PyQt不再使用QMake系統和Q_OBJECT宏。
PyQt5提供GPL版和商業版證書,自由開發者可以使用免費的GPL許可,如果需要將PyQt用于商業應用,則必須購買商業許可。
PyQt5特性如下:
基于高性能的Qt的GUI控件集。
能夠跨平臺運行在Linux、Window和Mac OS系統上。
使用信號槽機制進行通信。
對Qt庫進行完全封裝。
可以使用成熟的IDE進行界面設計,并自動生成可執行的Python代碼。
提供一整套種類齊全的窗口控件。
PyQt5是由一系列Python模塊組成,有超過620個類,6000個函數和方法,主要模塊如下:
QtCore:包含了核心的非 GUI 的功能。主要和時間、文件與文件夾、各種數據、流、URLs、mime 類文件、進程與線程一起使用。
QtGui:包含了窗口系統、事件處理、2D 圖像、基本繪畫、字體和文字類。
QtWidgets:包含了一系列創建桌面應用的 UI 元素。
QtMultimedia:包含了處理多媒體的內容和調用攝像頭 API 的類。
QtBluetooth:包含了查找和連接藍牙的類。
QtNetwork:包含了網絡編程的類,這些工具能讓 TCP/IP 和 UDP 開發變得更加方便和可靠。
QtPositioning:包含了定位的類,可以使用衛星、WiFi 甚至文本。
Enginio:包含了通過客戶端進入和管理 Qt Cloud 的類。
QtWebSockets:包含了 WebSocket 協議的類。
QtWebKit:包含了一個基 WebKit2 的 web 瀏覽器。
QtWebKitWidgets:包含了基于 QtWidgets 的 WebKit1 的類。
QtXml:包含了處理 xml 的類,提供了 SAX 和 DOM API 的工具。
QtSvg:提供了顯示 SVG 內容的類,Scalable Vector Graphics (SVG) 是一種是一種基于可擴展標記語言 (XML),用于描述二維矢量圖形的圖形格式(這句話來自于維基百科)。
QtSql:提供了處理數據庫的工具。

QtTest:提供了測試 PyQt5 應用的工具。

以上就是Python 圖形界面框架 PyQt5教程的詳細內容,想要了解更多Python教程歡迎持續關注編程學習網。

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取