wxPython vs PyQt vs PyGTK: kiedy i czego używać?

  • Potrzebujesz porady od tych, którzy mają minimalne doświadczenie zdrowotne, aby zaprojektować interfejsy GUI z Pythonem.
  • Kiedy i co wybrać w zależności od złożoności GUI?
  • jakich konstruktorów GUI możemy użyć, aby uzyskać lepszą jakość rozwoju?

To mój pierwszy projekt GUI i zrobiłem to bez GUI Buildera, w tej chwili stacked ponieważ zrozumiałem, żeObjectListView wrapper dla wx.ListCtrl nie zawiera natywnie łatwego paska postępu lub miernika żywioły. (patrz kolumna "Upload status" z obrazka).

Uwaga: ObjectListView ma pasek postępu w wersji. Net, w tej chwili nie w wx.Python.

P. S: znalazłem ten wspaniały Python GTK + Full Stack Tutorial

Tutaj wpisz opis obrazka

Author: Mike Driscoll, 2013-10-25

3 answers

Nie jestem pewien, o co prosisz. wxPython i pyQt / pyside są prawdopodobnie najłatwiejsze w użyciu na wszystkich platformach i będą wyglądać dobrze na większości systemów operacyjnych. Wiem, że wxPython jest specjalnie zaprojektowany, aby owinąć natywne widgety, więc jeśli chcesz, aby Twoja aplikacja wyglądała natywnie, myślę, że wxPython jest do zrobienia. Jeśli chcesz mieć możliwość motywowania/skórowania aplikacji, PyQt lub pyGTK mogą być lepsze.

PyQt / PySide w pewnym stopniu wspiera mobile, co nie wierzę, że pozostałe dwa tak robią. Jeśli zaplanuj program na telefon komórkowy, wtedy możesz wybrać tę trasę lub spojrzeć na Kivy.

PyQt / PySide mają dość potężny edytor WYSIWYG. wxPython ma kilka, ale nie sądzę, że żaden z nich obsługuje wszystkie widżety wx, a ich wsparcie jest spotty. To mnie nie powstrzymało, ponieważ i tak wykonuję wszystkie moje kodowanie ręcznie.

Jak zwykle, prawdopodobnie będziesz musiał przeczytać wiele dokumentacji i spróbować każdej z nich, aby zobaczyć, który z nich najlepiej pasuje do twojego mózgu i spełnia Twoje potrzeby.

 21
Author: Mike Driscoll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-25 13:31:19

Nie używaj PyGTK, jeśli chcesz mieć kompatybilność między platformami. GTK3 nie działa jeszcze na windows (ostatnio sprawdzałem) i GTK2 ma okropny wyciek pamięci pod windows, który został naprawiony w najnowszym źródle, ale żadne nowe wydanie nie zostało skompilowane dla windows.

Oddałbym głos za PySide (bardziej elastyczną Licencją dla opcji komercyjnych) nad PyQt i PySide/PyQt nad wxPython po prostu dlatego, że myślę, że narzędzie GUI designer jest lepsze! Możliwość szybkiego tworzenia i edycji GUI graficznie (i niezależnie od kodu aplikacji) to ogromna oszczędność czasu.


Na wykresie dziennym widać, że na wykresie dziennym widać, że w okolicach 1000-1000 Rozwój PySide jest opóźniony, jest bardzo mało osób naprawiających błędy i nikt nie pracuje nad wsparciem dla Qt 5.
 14
Author: three_pineapples,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-17 23:26:24

PyQT w Windows

PyQT w Windows

PyGTK

PyGTK

PyQT w KDE

PyQT w KDE

  1. PyQT w Windows
  2. PyGTK+3
  3. PyQT w KDE

Więc jeśli wybierzesz PyQT, projekt Twojej aplikacji będzie wyglądał inaczej na różnych systemach operacyjnych i środowiskach desktopowych. Nie mam Macintosha, więc nie mogę podać zdjęcia, jak będzie wyglądać moja aplikacja w nim. Jest to jedna z moich aplikacji napisanych w PyQT i PyGTK+3. Należy pamiętać, że projekt pozostanie taki, jaki jest w PyGTK+3, więc nie będzie żadnych różnic tak, jak są w PyQT. Jest to zdecydowanie najłatwiejszy do nauczenia się, ponieważ istnieje program Glade, który pomoże Ci zbudować swój projekt bez poświęcania nawet minuty na ręczne kodowanie. Ale dzięki PyQT możesz dostroić projekt aplikacji i nie zmusi cię to do oderwania słuchu od błędów.

 10
Author: HexSFd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-10 20:08:27