Tworzenie Gui w Pythonie: Tkinter vs PyQt [zamknięty]

Jeśli ktoś chce stworzyć interfejs użytkownika w Pythonie, który wybrać: TkInter czy PyQt?

Właśnie zacząłem z TkInter i udało mi się uzyskać kilka prostych interfejsów z elementarnych widgetów, takich jak etykieta, przycisk, pole tekstowe itp. Ciekawi mnie tylko, jak dobry PyQt byłby w porównaniu do Tkintera?

Cheers

Author: nbro, 2009-07-07

6 answers

PyQt jeśli tworzysz coś poważnego, zwłaszcza, że rzeczy, których się nauczysz, przełożą się bezpośrednio na pracę z Qt również w innych językach, Jeśli kiedykolwiek będziesz tego potrzebował, a Qt jest prawdopodobnie najlepszym zestawem narzędzi interfejsu międzyplatformowego dostępnym teraz.

Istnieją tylko dwie rzeczywiste (potencjalne) wady:

PyQt jest dostÄ ™ pny tylko na licencji GPL. Oznacza to, że jeśli wydasz swój kod, musi on być dostępny na zgodnej licencji, na warunkach GPL Nokii Exception , lub na licencji komercyjnej (która kosztuje). Jest to w przeciwieństwie do Qt, który jest teraz dostępny pod LGPL.

PyQt nie jest domyślnie dołączany do instalacji Pythona. Będziesz musiał spakować bibliotekę. (Ars Technica ma dobry artykuł na temat robienia tego Dla Windows i OS X.)

 52
Author: Sam DeFabbia-Kane,
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-03-15 17:50:29

PyQt jest naszym głównym zestawem narzędzi GUI teraz i po 1 roku rozwoju nie chcę wracać do niczego innego. Jest stabilny, dojrzały, wieloplatformowy i całkowicie natywny. Nawet okna dialogowe systemu (na przykład do otwierania plików) są używane przez system operacyjny.

Poprawiłem motyw XP, a teraz skórkę aplikacji. Tworzy to bardzo profesjonalny wygląd, nieporównywalny z zestawem narzędzi, takim jak Swing. API jest rozbudowany i wykracza poza czyste rzeczy GUI, takie jak widżety. Informatyka ma wsparcie dla łączności z bazami danych, drukowania, gwintowania (użyłem go i działa jak urok),... Używam go nawet do generowania plików PDF (nie są potrzebne żadne inne zewnętrzne biblioteki). Polecam książkę Marka Summerfielda " szybkie programowanie GUI z Pythonem i Qt ", aby przyspieszyć. Należy pamiętać, że Qt jest wyposażony w GUI builder (Qt designer), który jest najlepszy, jakiego używałem (i próbowałem wielu z nich).
Używam nawet tego Buildera do tworzenia makiet, aby pokazać użytkownikom (jest to, że spokojnie!).

Przedstawiłem go 2 innym programistom tutaj i nie słyszałem, aby narzekali...

 30
Author: Wim Verhavert,
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-03-10 15:15:36

Używam tkinter dla małych aplikacji z prostym interfejsem. Bardzo mi się podoba, nawet jeśli brak dobrego edytora WYSIWYG może być problemem dla większej aplikacji.

Dla dużych aplikacji, PyQt to może być lepszy wybór. Ma bardzo dobrego projektanta ekranu, ale licencjonowanie może być problemem.

Wreszcie, wxPython może być dobrą alternatywą, ponieważ nie ma tych wad.

 15
Author: luc,
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
2015-07-17 14:04:08

PyQt jest naprawdę łatwy do nauczenia się i docs for Qt działa również dla PyQt również istnieją porty do. NET i Java. Tak więc jest to fairy cross platform i cross language. Masz również PyQt zintegrowany z Eric IDE .

Obsługa stylów CSS jest również naprawdę genialna.

Zobacz nowy instalator OpenSuSE, aby zobaczyć, co możesz z nim zrobić.

 5
Author: przemo_li,
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
2015-07-17 14:07:06

Możesz tworzyć ogromne GUI za pomocą Tkinter. Jeśli chcesz wypróbować moduł pytkgen pomaga tworzenie GUI Tkinter z definicji JSON: https://github.com/tmetsch/pytkgen

 2
Author: Andre,
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
2011-05-27 12:25:26

Używam PyQt-Cross-platform, łatwy w obsłudze i niezawodny.

Użyłem TkInter bardzo lekki i nie mogę znaleźć punktu, dzięki któremu tkInter jest lepszy niż PyQt.

 0
Author: Kumaresan Lakshmanan,
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-03-10 15:30:55