Ten artykuł został pierwotnie opublikowany w maju 2016 roku i został zaktualizowany o nowe informacje.
w podróży większości programistów przychodzi taki czas, kiedy są gotowi, aby przejść obok podstawowych przykładów i zacząć budować graficzny interfejs do swojego programu.
w Pythonie kroki, aby rozpocząć programowanie GUI, nie są strasznie skomplikowane, ale wymagają od użytkownika podjęcia pewnych wyborów., Ze względu na swoją naturę, jako języka programowania ogólnego przeznaczenia z interpreterami dostępnymi w każdym powszechnym systemie operacyjnym, Python musi być dość niezależny od wyborów, jakie prezentuje przy tworzeniu graficznych interfejsów użytkownika.
na szczęście istnieje wiele opcji dostępnych dla programistów, którzy chcą stworzyć łatwy sposób interakcji użytkowników z ich programami. Powiązania istnieją dla kilku frameworków interfejsu użytkownika na różnych platformach, w tym natywnych dla Linuksa, Windows i Mac, a wiele z nich działa na wszystkich trzech platformach.,
zanim przejdziesz dalej, bądź przez chwilę swoim adwokatem diabła i zapytaj: czy naprawdę ma sens, aby Twoja aplikacja miała tradycyjny graficzny interfejs użytkownika? W przypadku niektórych programów odpowiedź jest oczywista. Jeśli Twoja aplikacja jest z natury graficzna i jest albo zoptymalizowana pod kątem, albo po prostu ma sens uruchamianie lokalnie na jednej maszynie lokalnej, to tak, prawdopodobnie powinieneś rozważyć zbudowanie graficznego interfejsu graficznego. Wiele razy jest to oczywiste przez to, co projektujesz.
ale w przypadku programów ogólnego przeznaczenia nie należy liczyć ani linii poleceń, ani interfejsu WWW., Linia poleceń oferuje wiele zalet-szybkość, zdalny dostęp, możliwość ponownego użycia, możliwość skryptowania i sterowanie – które mogą być ważniejsze dla użytkowników aplikacji niż interfejs graficzny, a istnieje wiele bibliotek, takich jak Click, Cement i Cliff, które ułatwiają projektowanie wspaniałych programów wiersza poleceń.
podobnie interfejs WWW, nawet dla programu, który ma być uruchamiany lokalnie, może być opcją wartą rozważenia, szczególnie jeśli uważasz, że Twoi użytkownicy mogą chcieć hostować Twoją aplikację zdalnie, a projekty takie jak Django, Flask lub Pyramid wszystko to ułatwia., Możesz nawet użyć biblioteki, takiej jak pywebview, aby umieścić cienką owijkę wokół aplikacji internetowej w natywnym oknie GUI.
Alternatywnie możesz używać frameworku, takiego jak Pyforms, aby tworzyć spójne środowisko w Internecie, wierszu poleceń i na pulpicie, a wszystko to za pomocą jednej bazy kodu.
nadal jesteś pewien, że chcesz zbudować GUI? Świetnie, oto kilka fantastycznych bibliotek open source, które pomogą Ci zacząć.,
PyQt, PySide i Qt dla Pythona
PyQt implementuje popularną bibliotekę Qt, więc jeśli jesteś zaznajomiony z rozwojem Qt w innym języku, być może z tworzenia natywnych aplikacji dla KDE lub innego środowiska graficznego opartego na Qt, możesz już być zaznajomiony z Qt. Otwiera to możliwość tworzenia aplikacji w Pythonie, które mają znajomy wygląd na wielu platformach, przy jednoczesnym wykorzystaniu narzędzi i wiedzy dużej społeczności Qt.
Qt jest dobrze ugruntowany w społeczności programistów i posiada narzędzia, które to odzwierciedlają., Pisanie aplikacji Pythona wokół Qt oznacza, że masz dostęp do QtCreator, który oferuje tryb projektanta do generowania kodu dla układu aplikacji.
PyQt jest podwójnie licencjonowany zarówno na licencji komercyjnej, jak i GPL, podobnie jak sam projekt Qt, a główna firma wspierająca PyQt oferuje FAQ licencji, aby pomóc zrozumieć, co to oznacza dla Twojej aplikacji.
inną opcją korzystania z bibliotek Qt z Pythonem jest Qt for Python (powszechnie znany jako PySide2), dostępny pod LPGL.,
Tkinter
gdyby istniał pojedynczy pakiet, który mógłby być nazywany „standardowym” zestawem narzędzi GUI dla Pythona, byłby to Tkinter. Tkinter jest owijarką wokół Tcl/Tk, popularnego interfejsu graficznego i parowania języków, spopularyzowanego na początku lat 90. zaletą wyboru Tkinter jest ogromna liczba zasobów, w tym książek i próbek kodu, a także duża społeczność użytkowników, którzy mogą być w stanie pomóc, jeśli masz pytania. Proste przykłady są łatwe do rozpoczęcia i dość czytelne dla człowieka.,
Tkinter jest dostępny na licencji Python, oprócz licencji BSD Tcl / Tk.
wxPython
wxPython przenosi wieloplatformową bibliotekę GUI wxWidgets z natywnego C++ do Pythona. WxPython wygląda trochę bardziej natywnie niż Tkinter w różnych systemach operacyjnych, ponieważ używa widżetów systemu hosta do budowy GUI. Jest to również dość łatwe do rozpoczęcia i ma rosnącą społeczność programistów. Być może będziesz musiał połączyć wxPython ze swoimi aplikacjami lub wymagać od użytkownika zainstalowania go samodzielnie, ponieważ nie jest on automatycznie instalowany z Pythonem.,
WxPython używa licencji biblioteki wxWindows swojego macierzystego projektu, która jest zatwierdzona przez OSI.
Python GTK+ 3
wcześniej znany jako PyGTK, projekt Python GTK+ 3 zapewnia powiązania Pythona z obiektami GTK (windows, widgety itp.). GTK+ jest najbardziej znany jako podstawa pulpitu GNOME, ale jest dostępny dla samodzielnych aplikacji na Linuksie, Windows i Mac. W Pythonie GTK+ 3 ten sam framework jest dostępny dla Twoich projektów Pythona.
Kiedy używasz Pythona GTK+ 3, możesz użyć wielu z tych samych narzędzi programistycznych stworzonych dla samego GTK+., Przede wszystkim dotyczy to Glade, projektanta interfejsów dla aplikacji GTK+. Interfejsy zaprojektowane w Glade są zapisywane jako XML i używane przez obiekt GtkBuilder w kodzie aplikacji, ale używany interfejs jest przeciągany i upuszczany, co ułatwia tworzenie dynamicznego i responsywnego interfejsu użytkownika bez konieczności tłumaczenia tego, co widzisz w swoim umyśle na kod układu.
Kivy
zbudowany z myślą o szybkim rozwoju i nowoczesnych urządzeniach, Kivy jest zestawem narzędzi dla Systemów Linux (w tym Raspberry Pi), Windows, Mac i Android., Projekt koncentruje się na „innowacyjnych interfejsach użytkownika” i został wykorzystany w aplikacjach multimedialnych, takich jak aplikacje music controller dla telefonów do aplikacji whiteboardingu, które zajmują całą ścianę sali konferencyjnej.
Kivy nie ma programu do tworzenia układów graficznych, takiego jak QtCreator i Glade, ale używa własnego języka projektowania, który pomaga kojarzyć układ interfejsu użytkownika z obiektami kodu. Ułatwia to dzielenie (zarówno mentalnie, jak i w kodzie układu) klas i funkcji w aplikacji., Kivy jest również gospodarzem Kivy Garden, repozytorium widżetów i dodatków stworzonych przez użytkowników, więc jeśli myślisz o stworzeniu czegoś, czego sama Kivy nie zapewnia, być może już istnieje w ogrodzie.
nie są to jedyne dostępne opcje, nawet na dłuższą metę. Aby uzyskać więcej opcji, sprawdź stronę „programowanie GUI w Pythonie” na oficjalnej Wiki Python Software Foundation, która zawiera dziesiątki innych narzędzi. Dostępne są rozwiązania do wiązania Pythona z wieloma różnymi bibliotekami widżetów i narzędziami GUI, takimi jak FLTK, FOX i wiele innych., Podczas gdy początkujący powinni prawdopodobnie unikać projektów zapewniających tylko częściowe wdrożenia lub tych, które nie są już aktywnie utrzymywane, istnieje wiele dobrych narzędzi do różnych sytuacji.
Wiele opcji dostępnych jest dla tradycyjnych aplikacji, które przybierają wygląd okien i ich macierzystego środowiska graficznego, ale są też sytuacje, w których możesz chcieć zrobić coś zupełnie innego, na przykład w grze wideo. Istnieją również świetne biblioteki do takich sytuacji, jak pygame, pyglet i Panda3d.
Leave a Reply