Jest tak wiele ram do pisania aplikacji GUI przy użyciu Pythona. Ale czy jest jakiś kluczowy standard? Na przykład mamy pakiet .NET / C # w Visual Studio.
Myślę także w innych perspektywach. Jeśli w przyszłości udzielę wywiadu na temat pracy programisty Python, który interfejs GUI będzie brany pod uwagę?
Zastanawiam się również, nie ma IDE integrującego GUI i język Python. Wybór smaku jest dobry, ale nadmierny wybór staje się rozrywką.
Odpowiedzi:
Możesz napisać aplikacje GUI Win32 API w Pythonie, jeśli lubisz pisać cały ten wspólny kod: projekt PyWin32
Osobiście lubię wxPython . Jest wieloplatformowy (w pełni obsługiwany zarówno w systemie Linux, jak i Windows) i istnieje już od dłuższego czasu ... przyzwoita baza wsparcia oraz mnóstwo dokumentacji / przykładowego kodu. Jeśli chcesz tego użyć, spójrz na BoaConstructor . To jest IDE dla wxPython (lub lepiej mówiąc, IDE napisane w i dla wxPython). Jest to jedyne RAD IDE specjalnie dla Pythona, na które natknąłem się, o którym nawet warto wspomnieć, z wyjątkiem edytora Qt UI (edytor UI Qt jest dostępny zarówno dla C ++, jak i PyQT).
Jak wspomniał Peter w swojej odpowiedzi, Tk to defaktyczne GUI dla starszych aplikacji Python, ale tak naprawdę nie wyglądają tak ładnie dla użytkownika końcowego. Istnieje kilka rozszerzeń, które sprawiają, że wygląda trochę lepiej i zapewniają możliwość stylizowania interfejsu użytkownika, ale chyba, że utrzymujesz starszą aplikację GUI, nie sugerowałbym zawracania sobie tym głowy.
pyGTK, również wspomniany, byłby kolejnym dobrym wyborem. To także jest wieloplatformowe, chociaż nie miałem żadnego osobistego doświadczenia z programowaniem GTK w systemie Windows. PyQT byłby lepszym wyborem, IMO - myślę, że GUI utworzone przy użyciu biblioteki Qt wyglądają i działają lepiej niż te wykonane przy pomocy GTK. Uważam również, że mechanizm zdarzenia sygnału / gniazda Qt jest łatwiejszy w obsłudze. YMMV.
Naprawdę nie ma żadnego standardu dla rozwoju GUI Pythona, przynajmniej nie to, co widziałem, ale spośród moich innych programistów Pythona, z którymi pracowałem przez lata, zasugerowali mi wxPython i PyQT bardziej niż jakikolwiek inny zestawy narzędzi. Szczerze mówiąc, nie jestem pewien, czy istnieje jakaś znaczna liczba pozycji programistycznych GUI Pythona. Większość rozwoju Pythona, który przeprowadziłem przez lata, była po stronie serwera, ale to nie znaczy, że nie ma różnych firm, które chcą pójść drogą open source dla swoich aplikacji GUI.
źródło
Tk był kiedyś standardem, ale jest prawdopodobnie uproszczony i brzydki. Potem Qt stało się dość popularne. Możliwy jest także Gtk, który obejmuje ulubione na platformach Linux.
Ale masz rację, tak naprawdę nie ma oczywistej odpowiedzi. W końcu nadmierny wybór jest dość powszechny.
źródło
Nie ma „standardu” i zgadzam się - mnóstwo wyborów to ból. Jeśli chodzi o zintegrowane IDE „dwukierunkowych narzędzi” dla GUI Pythona, zastanawiam się również, dlaczego wydaje się, że ich nie ma - być może dlatego, że istnieje tak wiele zestawów narzędzi GUI, że nikt nie chce inwestować w IDE tylko dla jednego z nich. im.
Powiedziawszy to, PyQt 4.7 z P3k zapewni Ci wspaniałe GUI (a także wiele innych potężnych funkcji). Zobacz http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.html - „To jest przewodnik dla PyQt 4.8.4. PyQt v4 to zestaw powiązań Pythona dla v4 Qt framework aplikacji firmy Nokia ”.
PyQt jest szeroko stosowany i jest na nim kilka dobrych książek: patrz http://www.qtrac.eu/pyqtbook.html „Szybkie programowanie GUI za pomocą Pythona i Qt” między innymi (książka jest nieco przestarzała - wymaga aktualizacji dla P3k).
Istnieją 2 poważne problemy z PyQt:
1) Ma pewne wyraźnie „niepythonic” cechy, będąc jedynie cienkim opakowaniem w bibliotekach C ++ Qt. Ale zaleciłem P3k-PyQt 4.7, ponieważ niektóre zostały rozwiązane w „najnowszych i najlepszych” pakietach. Sprawdź ten post:
Problemy projektowe PyQt
2) Do użytku komercyjnego istnieją dość wysokie opłaty licencyjne, zarówno dla PyQt, jak i Qt.
Nadchodzącą alternatywą dla PyQt jest PySide firmy Nokia, kolejne opakowanie Pythona dla Qt, które jest całkowicie open source (ale nie obejmuje licencji Qt).
Wiedza o Qt nie jest złą rzeczą z punktu widzenia rynku, a dostaniesz to od PyQt, więc rozważę to (lub PySide) poważnie, jeśli spróbujesz zdecydować się na jedną platformę GUI, aby stać się ekspertem w .
Niezależnie od tego, co wybierzesz, sugeruję unikanie tkintera w przeważającej części, nawet jeśli jest on „gotowy do użycia” z Pythonem, ponieważ jest bardzo ograniczony, a IMO ma surowy, przestarzały wygląd.
HTH
źródło
pyGTK jest płodny. Jest dość łatwy w użyciu i sprawia, że GUI, które nie wyglądają w połowie źle.
źródło
Gtk3 to bardzo dojrzały interfejs GUI. Ma natywne powiązania w języku Python (GObject Introspection) i mnóstwo dokumentacji . Jeśli robisz sporo GUI, rozważ użycie Anjuty . Anjuta ma interfejs przeciągnij i upuść, aby łatwo skonfigurować widżety.
WxWidgets jest całkiem niezły, jednak nie ma łatwego sposobu na dynamiczne generowanie wywołań Pythona, tak jak Anjuta dla Gtk.
PyGtk jest teraz przestarzałe na rzecz powiązań Gtk3 z Python (GObject Introspection)
PyQt jest także odtwarzaczem w graficznym interfejsie Pythona, ale nie ma dużej społeczności.
BoaConstructor jest dłużej utrzymywany i głupio byłoby go używać.
źródło