Tento článek byl původně publikován v květnu 2016 a byl aktualizován novými informacemi.
přichází čas na cestě většiny programátorů, když jsou připraveni rozdělit se za základní příklady a začít vytvářet grafické rozhraní do svého programu.
v Pythonu nejsou kroky, jak začít s programováním GUI, příliš složité, ale vyžadují, aby uživatel začal dělat nějaké volby., Ze své podstaty jako obecný účel programovací jazyk s tlumočníky k dispozici na všech běžných operačních systému, Python musí být poměrně agnostik jako k možnosti, že představuje pro vytváření grafických uživatelských rozhraní.
naštěstí existuje mnoho možností pro programátory, kteří chtějí vytvořit snadný způsob, jak mohou uživatelé komunikovat se svými programy. Vazby existují pro několik rámců uživatelského rozhraní na různých platformách, včetně těch, které jsou původem z Linuxu, Windows a Mac, a mnoho, které fungují napříč všemi třemi.,
Než jít dál, být svým vlastním ďáblova advokáta na chvíli a zeptejte se: Má to opravdu smysl, aby vaše aplikace mít tradiční grafické uživatelské rozhraní? U některých programů je odpověď zřejmá. Pokud je vaše aplikace ze své podstaty grafická a je buď optimalizována pro nebo má smysl provozovat lokálně na jednom místním počítači, pak ano, pravděpodobně byste měli zvážit vytvoření desktopového GUI. Mnohokrát je to zřejmé tím, co navrhujete.
ale pro programy pro všeobecné účely nepočítejte příkazový řádek ani webové rozhraní., Příkazový řádek, který nabízí mnoho výhod—rychlost, dálkový přístup, znovupoužitelnost, scriptability, a řízení, které může být důležité pro vaše aplikace uživatelům, než grafické rozhraní, a existuje mnoho knihoven, jako je Kliknutí, Cement, a Skály, které usnadňují navrhnout velké příkazového řádku programů.
Podobně, jako webové rozhraní, a to i pro program chtěl spustit lokálně, může být možnost stojí za zvážení, zvláště pokud si myslíte, že vaši uživatelé mohou chtít hostit vaše aplikace na dálku, a projekty, jako je Django, Flask, nebo Pyramidy všechny, aby to jednoduché., Můžete dokonce použít knihovnu jako pywebview dát tenký obal kolem webové aplikace v nativním okně GUI.
případně můžete použít rámec jako Pyforms vybudovat konzistentní zážitek přes web, příkazový řádek, a desktop, to vše s jediným kód základny.
stále si jisti, že chcete vytvořit GUI? Skvělé, zde je několik fantastických knihoven s otevřeným zdrojovým kódem, které vám pomohou začít.,
PyQt, PySide, Qt pro Python
PyQt implementuje populární Qt knihovny, a tak pokud jste obeznámeni s Qt vývoj v jiném jazyce, snad od vývoje nativních aplikací pro KDE nebo jiný Qt-založené desktopová prostředí, již mohou být obeznámeni s Qt. To otevírá možnost vývoje aplikací v Pythonu, které mají známý vzhled a dojem na mnoha platformách, a zároveň využívají nástrojů a znalostí velké komunity Qt.
Qt je dobře zaveden v komunitě vývojářů a má nástroje, které to odrážejí., Psaní Python aplikací kolem Qt znamená, že máte přístup k QtCreator, který je k dispozici režim návrháře generovat kód pro rozvržení aplikace.
PyQt je dual licencován pod komerční i GPL licencí, ne na rozdíl od samotného projektu Qt, a primární společnost podporující PyQt nabízí licenční FAQ, které vám pomohou pochopit, co to znamená pro vaši aplikaci.
pro další možnost použití knihoven Qt s Pythonem zvažte Qt pro Python (běžně známý jako PySide2), který je k dispozici pod LPGL.,
Tkinter
Pokud by existoval jediný balíček, který by mohl být nazýván“ standardní “ GUI toolkit pro Python, byl by to Tkinter. Tkinter je wrapper kolem Tcl/Tk, populární grafické rozhraní a jazyk párování nejprve popularizoval v počátku 90. let. Výhodou výběru Tkinter je obrovské množství zdrojů, včetně knih a ukázky kódu, stejně jako velká komunita uživatelů, kteří mohou být schopni pomoci vám, pokud budete mít otázky. Jednoduché příklady lze snadno začít a poměrně lidsky čitelné.,
Tkinter je k dispozici pod licencí Python, na vrcholu BSD licence Tcl/Tk.
wxPython
wxPython přináší wxWidgets multiplatformní GUI knihovnu ze svého nativního C++ do Pythonu. WxPython vypadá trochu nativněji než Tkinter v různých operačních systémech, protože používá widgety hostitelského systému k vytvoření GUI. Je to docela snadné začít s, jakož, a má rostoucí vývojářskou komunitu. Možná budete muset svázat wxPython s vašimi aplikacemi, jinak budete vyžadovat, aby jej uživatel nainstaloval sám, protože není automaticky nainstalován s Pythonem.,
WxPython používá licenci knihovny Wxwindows svého mateřského projektu, který je schválen OSI.
Python GTK+ 3
dříve známý jako PyGTK, Projekt Python GTK+ 3 poskytuje vazby Pythonu na objekty GTK(windows, widgety atd.). GTK+ je nejvíce skvěle používán jako základ pro pracovní plochu GNOME, ale je k dispozici pro samostatné aplikace na Linuxu, Windows a Mac. S Python GTK + 3, stejný rámec je k dispozici pro vaše projekty Python.
při použití Pythonu GTK + 3 můžete použít mnoho stejných vývojových nástrojů vytvořených pro samotný GTK+., Zejména to zahrnuje Glade, návrháře rozhraní pro aplikace GTK+. Rozhraní určené v Glade jsou uloženy jako XML a používá GtkBuilder objekt v kódu aplikace, ale rozhraní, které používáte, je drag-and-drop, takže je snadné vytvořit dynamický a citlivý uživatelské ROZHRANÍ, aniž by museli přeložit to, co vidíte ve své mysli do rozvržení kódu.
Kivy
postavený s rychlým vývojem a moderními zařízeními v mysli, Kivy je sada nástrojů pro Linux (včetně Raspberry Pi), Windows, Mac a Android., Projekt je zaměřen na „inovativní uživatelské rozhraní“, a je používána pro multimediální aplikace, jako je hudba controller aplikace pro telefony whiteboarding aplikací, které zabírají celou stěnu zasedací místnosti.
Kivy nemá program vizuálního rozvržení, jako je QtCreator a Glade, ale používá svůj vlastní designový jazyk, který vám pomůže přiřadit rozvržení uživatelského rozhraní k kódovým objektům. To vám usnadňuje rozčlenění (mentálně i v kódu rozvržení) tříd a funkcí ve vaší aplikaci., Kivy také hostí Kivy Garden, úložiště uživatelsky vytvořených widgetů a doplňků, takže pokud uvažujete o vytvoření něčeho, co Kivy sám neposkytuje, možná již existuje v zahradě.
toto nejsou jediné možnosti, které máte k dispozici, ani dlouhým výstřelem. Pro více možností se podívejte na stránku „GUI programování v Pythonu“ na oficiální wiki Python Software Foundation, která obsahuje desítky dalších nástrojů. Řešení jsou k dispozici pro vázání Python na mnoha různých widget knihoven a GUI nástrojů, jako je FLTK, FOX, a mnoho dalších., Zatímco začátečníci by se pravděpodobně měli vyhnout projektům poskytujícím pouze částečné implementace, nebo těm, které již nejsou aktivně udržovány, existuje spousta dobrých nástrojů pro různé situace.
Mnoho možností, tam venku jsou pro tradiční aplikace, které se na okně vzhled a dojem z jejich mateřské desktopové prostředí, ale tam jsou také časy, kdy budete chtít dělat něco úplně jiného, například ve videohře. Existují také velké knihovny pro tyto situace, jako je pygame, pyglet a Panda3d.
Leave a Reply