qt ui框架_5个开源Python GUI框架
您的Python程序需要圖形用戶界面嗎?這里有五個工具可以幫助您構建一個。
在Python中,開始GUI編程的步驟并不十分復雜,但是它們確實需要用戶開始做出一些選擇。由于Python是一種通用編程語言,在每個通用操作系統中都有解釋器可用,因此它對于創建圖形用戶界面的選擇是相當不可知的。
幸運的是,有許多可供程序員使用的選項,它們希望為用戶提供一種與用戶的程序進行交互的簡便方法。在各種平臺上都存在針對多個UI框架的綁定,包括Linux,Windows和Mac原生的綁定,并且許多跨這三個平臺均可使用。
對于您的應用程序而言,擁有傳統的圖形用戶界面真的有意義嗎?對于某些程序,答案是顯而易見的。如果您的應用程序本質上是圖形的,并且為在單個本地計算機上本地運行而進行了優化或使其有意義,那么可以,您可能應該考慮構建桌面GUI。
但是對于通用程序,請不要忽略命令行或Web界面。命令行具有許多優點 - 速度、遠程訪問、可重用性、可編寫腳本和控制。與圖形界面相比,這對于您的應用程序用戶而言可能更為重要,還有許多庫(如Click、Cement和Cliff)使設計優秀的命令行程序變得更容易。
類似地,web界面(即使是要在本地運行的程序)可能也是一個值得考慮的選項,特別是如果您認為您的用戶可能希望遠程托管您的應用程序,而Django、Flask或Pyramid之類的項目都使這一點非常簡單。您甚至可以使用像pywebview這樣的庫在本地GUI窗口中對web應用程序進行包裝。
或者,您可以使用Pyforms之類的框架在Web、命令行和桌面上構建一致的體驗,而所有這些都只需一個代碼庫。
仍然確定要構建GUI嗎? 很好,這里有一些很棒的開源庫,可以幫助您入門。
PyQt、PySide和適用于Python的Qt
PyQt(鏈接:https://riverbankcomputing.com/software/pyqt/intro)實現了流行的Qt(鏈接:http://www.qt.io/)庫,因此,如果您熟悉另一種語言的Qt開發,例如從為KDE或其他基于Qt的桌面環境開發本機應用程序,您可能已經熟悉Qt。這就開辟了使用Python開發應用程序的可能性,這些應用程序在許多平臺上都具有熟悉的外觀和感覺,同時利用了大型Qt社區的工具和知識。
Qt已經在開發人員社區中建立了良好的基礎,并且有相應的工具來反映這一點。圍繞Qt編寫Python應用程序意味著您可以訪問QtCreator(鏈接:https://www.qt.io/development-tools),它的特性是使用設計器模式為應用程序的布局生成代碼。
PyQt是在商業和GPL許可下雙重授權的,與Qt項目本身并無不同。并且支持PyQt的主要公司提供了許可證常見問題解答(鏈接:https://www.riverbankcomputing.com/commercial/license-faq),以幫助理解這對您的應用程序意味著什么。
對于將Qt庫與Python一起使用的另一種選擇,請考慮LPGL下提供的Qt for Python(通常稱為PySide2,鏈接:https://wiki.qt.io/Qt_for_Python)。
Tkinter
如果有一個單獨的軟件包可以被稱為Python的“標準” GUI工具包,那就是Tkinter(鏈接:http://tkinter.unpythonic.net/wiki/)。Tkinter是Tcl/Tk(鏈接:http://www.tcl.tk/)的包裝,Tcl/Tk是90年代初期首次流行的一種流行的圖形界面和語言配對。選擇Tkinter的優點是擁有大量資源,包括書籍和代碼示例,以及龐大的用戶社區,如果您有疑問,他們可以為您提供幫助。簡單的示例很容易上手,相當容易理解。
除了Tcl / Tk的BSD許可之外,Tkinter還可以通過Python許可(鏈接:http://tkinter.unpythonic.net/wiki/Tkinter)獲得。
WxPython
WxPython(鏈接:http://www.wxpython.org/)將wxWidgets跨平臺的GUI庫從它的本機C++帶到Python中。在不同的操作系統中,WxPython看起來比Tkinter更本機化一些,因為它使用主機系統的小部件來構造GUI。它也很容易上手,并且有一個不斷增長的開發人員社區。您可能需要將wxPython與您的應用程序捆綁在一起,或者要求用戶自己安裝wxPython,因為它不是與Python一起自動安裝的。
WxPython使用其上級項目的wxWindows庫許可(鏈接:http://www.wxwidgets.org/about/licence/),該許可是OSI批準(鏈接:https://opensource.org/licenses/wxwindows.php)的。
Python GTK+ 3
Python GTK + 3(鏈接:https://python-gtk-3-tutorial.readthedocs.io/)項目以前稱為PyGTK,它提供了與GTK對象(窗口,窗口小部件等)的Python綁定。 GTK +最著名的是用作GNOME桌面的基礎,但它也可用于Linux,Windows和Mac上的獨立應用程序。使用Python GTK+ 3,同樣的框架也可用于您的Python項目。
使用Python GTK + 3時,可以使用許多為GTK +本身創建的相同開發工具。最值得注意的是,其中包括GTK +應用程序的界面設計器Glade。用Glade設計的界面被保存為XML,并由應用程序代碼中的GtkBuilder對象使用,但是您使用的界面是拖放式的,因此可以輕松創建動態且響應迅速的UI,而無需將您在自己的視圖中看到的內容轉換為布局代碼。
Kivy
Kivy(鏈接:https://kivy.org/#home)是在考慮到快速發展和現代化設備的基礎上構建的,是用于Linux(包括Raspberry Pi),Windows,Mac和Android的工具包。該項目專注于“創新的用戶界面”,并且已用于多媒體應用程序,例如用于手機的音樂控制器應用程序以及占據整個會議室墻壁的白板應用程序。
Kivy沒有像QtCreator和Glade這樣的視覺布局程序,但是它使用自己的設計語言來幫助您將UI布局與代碼對象相關聯。這使您可以輕松地(在精神上和在布局代碼中)分隔應用程序中的類和函數。Kivy還托管Kivy Garden,Kivy Garden是用戶創建的小部件和附加組件的存儲庫,因此,如果您想創建Kivy本身不提供的某些內容,則它可能已存在于Garden中。
有關更多選項,請查看官方Python軟件基金會wiki上的“Python中的GUI編程(鏈接:https://wiki.python.org/moin/GuiProgramming)”頁面,其中列出了許多其他工具。可以使用解決方案將Python綁定到許多不同的小部件庫和GUI工具,如FLTK(鏈接:http://www.fltk.org/index.php)、FOX(鏈接:http://fxpy.sourceforge.net/)和許多其他工具。雖然初學者可能應該避免只提供部分實現的項目,或者那些不再積極維護的項目,但是有很多適合各種情況的好工具。
對于傳統應用程序而言,有許多選項可以采用其父桌面環境的窗口外觀,但是有時您可能希望做一些完全不同的事情,例如在視頻游戲中。也有很多適合這些情況的庫,例如pygame(鏈接:http://www.pygame.org/wiki/gui),pyglet(鏈接:https://bitbucket.org/pyglet/pyglet/wiki/Home)和Panda3d(鏈接:https://panda3d.org/)。
總結
以上是生活随笔為你收集整理的qt ui框架_5个开源Python GUI框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python绘制直角坐标系_小白学 Py
- 下一篇: swing退出子窗口事件_如何创建有效的