Zalecany zestaw narzędzi GUI do programowania w języku Python na Raspberry Pi

31

Uczę moją córkę Python (i do pewnego stopnia siebie) posługując się Pi, i do tej pory świetnie się bawiliśmy - ale CLI może nas tylko zabrać. Zacząłem szukać innych zestawów narzędzi, w szczególności wx , Qt i GTK . Wszystko to wydaje się mieć świetne powiązania z Linuksem, chociaż nie jestem w stanie znaleźć wielu informacji specyficznych dla Raspberry Pi. Jestem również otwarty na inne zestawy narzędzi - o ile wiązania Pythona są dobre.

Czy ktoś ma jakieś doświadczenie w kodowaniu jednego z nich na pi? Czy istnieje proste apt-getpolecenie, które muszę uruchomić, aby zainstalować niezbędne pakiety? Jeszcze lepiej, czy istnieje gotowy zestaw narzędzi, który będzie pasował do zwykłego obrazu Raspbian?

Uwaga: obecnie używam Raspbian bez problemów, choć Arch kusi z powodu problemów z mono.

Goyuix
źródło

Odpowiedzi:

22

Poleciłbym Tkinter, jest to standardowa biblioteka GUI dla Pythona, w wyniku czego jest już zainstalowana. IDLE IDE (które jest dołączone do obrazu Raspbian) nie tylko obsługuje Tkinter, ale sam jest aplikacją Tkinter. Ponadto większość książek w języku Python zawiera przynajmniej rozdział dotyczący tworzenia GUI w Tkinter. Jeśli wolisz zasoby sieciowe, powinieneś sprawdzić samouczek Tkinter Pythonware . Dodatkowe informacje i zasoby można znaleźć na stronie Tkinter w Python.org .

Steve Robillard
źródło
W przypadku samouczka Tkinter link znajduje się na drugiej stronie - oto wprowadzenie, jeśli ktoś tego chce: pythonware.com/library/tkinter/introduction/whats-tkinter.htm
Anonimowy pingwin
2

Poświęciłem trochę czasu Tkinterowi 15 lat temu, a potem kilka lat później zrobiłem coś z wx. Chociaż udało mi się załatwić sprawy, uznałem je za nieco nudne. Nie wiem, jak bardzo poprawiła się sytuacja, odkąd ich ostatnio użyłem - ani jak bardzo moja własna nauka uczyniłaby je dzisiaj łatwiejszymi.

Jednak w ciągu ostatnich kilku miesięcy badałem PySide , który jest strukturą kompatybilną z PyQt. Niezwykle przydatny jest Qt Designer , który pozwala przeciągać i upuszczać komponenty (przyciski, pokrętła, suwaki, pola wyboru itp.) I zapisywać je jako plik XML z rozszerzeniem „.ui”. pyside-uic następnie czyta to i generuje kod Pythona. Istnieje kilka WIELKICH filmów instruktażowych.

Bo Milanovich ma serię 29 filmów na Udemy (za 15 USD), którą właśnie ukończyłem, ale ma też kilka bezpłatnych podanych na stronie Qt: http://wiki.qt.io/PySide_Video_Tutorials . Bo może być nieco „rozproszony” w swoich lekcjach, stawiając na styczne, ale dla 29 lekcji trwających średnio 30 minut każda, zdecydowanie było to warte 15 USD.

Niedawno znalazłem także „ Samouczek Qt Designer - PyQt z Python GUI do programowania ” ( https://www.youtube.com/watch?v=Dmo8eZG5I2w ). Doprowadziło mnie to do strony prezentera, która oferuje wprowadzenie do Qt, Tkinter i Kivy https://pythonprogramming.net/gui-development-tutorials/ . Nie oglądałem ich, ale na podstawie samouczka Qt Designer, który obejrzałem, nie mogę się doczekać tych na pythonprogramming.net.

Trochę brakuje oficjalnej dokumentacji PyQt i PySide. Wiele z nich zostało przekonwertowanych za pomocą zautomatyzowanego procesu z oryginalnej dokumentacji Qt, a bity zostały utracone podczas tłumaczenia. Tak więc, jeśli brakuje dokumentów w https://pyside.github.io/docs/pyside/ , zobacz dokumenty w http://doc.qt.io/ i spróbuj przetłumaczyć to, co czytasz na Python. Ale najpierw obejrzyj samouczki, ponieważ zabiorą Cię one daleko.

Kilka lat temu krótko spojrzałem na GTK. Ma również projektanta, polanę. Zastanawiałem się, czy nie pójść tą drogą ponownie, ale w przypadku rzeczy, którymi byłem zainteresowany, wydawało się, że za Qt kryje się więcej energii. Właśnie zaczynam odkrywać Kivy, ponieważ wydaje się, że jest zalecany do pracy z ekranem dotykowym.

Trochę późno, ale mam nadzieję, że to pomoże.

Ubuntourist
źródło
1

tkinter to rozszerzenie GUI do TCL, które było używane bardzo wcześnie w cyklu programowania Python. IDLE powłoka poleceń Pythona używa tkintera.

do GUI potrzebujesz usługi xorg-x11 (demon) i menedżera prezentacji. X11 to miejsce, w którym mieszkają sterowniki urządzeń wyświetlających. Tam nazwy zaczynają się od xorg-x11-drv-xxxxx. X11 jest kontrolerem HID (Human Interface Device). Myszy, tablety, klawiatury itp. Również łączą się z usługą x11.

Moim kierownikiem prezentacji jest Gnome, ale jest ich co najmniej 1/2 tuzina. Rozumiem, że Xfce jest jednym z lżejszych.

Do programowania GUI Python używam narzędzi DrPython (edycja kodu, sprawdzanie składni i debugowanie). wxGlade to środowisko programistyczne GUI typu przeciągnij i upuść, podobne do Visual Basic. Oba są aplikacjami wxPython i nie wymagają uprawnień roota. Można je pobrać ze strony sourceforge.net

Mój R-Pi-3b jest na zamówienie. Moja wnuczka już ją ma, dlatego zamówienie zostało złożone. Programuję od ponad 60 lat, a w Pythonie od ponad dekady. Opracowałem wiele kompilatorów dla niestandardowych języków i aplikacji klient / serwer do automatyki domowej.

Ancient-Geek
źródło
1

Opracowałem aplikację GUI, która działa na Raspberry Pi 2,3. Użyłem zarówno tkintera, jak i pyQt4.

Ale tam, gdzie zarówno tkinter, jak i pyQt4 wymagają dużo więcej kodowania do umieszczenia widżetów i zajmuje dużo czasu na aranżację układu.

Według mojej sugestii użyj projektanta QT4, aby utworzyć interfejs użytkownika. Jest to bardzo łatwe ze względu na funkcję przeciągnij i upuść, później możesz wygenerować .py skrypt Pythona z pliku .ui za pomocą polecenia pyuic4, a także możesz dodawać obrazy w interfejsie użytkownika za pomocą projektanta qt4 dla że musisz utworzyć plik resosurce.rc, który później musisz przekonwertować za pomocą polecenia pyrcc.

Dostępnych jest kilka samouczków.

Yatish Prasad
źródło
0

Spójrz na appJar. Nie ma funkcji przeciągania i upuszczania programu QT4 Designer, o których mówiono powyżej, ale możesz stworzyć przyjemny GUI w ciągu kilku minut, w zależności od tego, co próbujesz osiągnąć. Dokumenty na ich stronie internetowej zawierają wiele świetnych przykładów. http://appjar.info/

Czad G.
źródło
-2

wybierz pygtk to najlepsza i solidna stabilna, ale łatwa dla początkujących

ngprnk
źródło
5
Niektóre dodatkowe szczegóły pomogłyby poprawić tę odpowiedź (co czyni ją najlepszą w porównaniu z innymi alternatywami, jak ją zainstalować, co ułatwia).
Steve Robillard