Empfohlenes GUI-Toolkit für die Python-Entwicklung auf dem Raspberry Pi


31

Ich unterrichte meine Tochter Python (und mich bis zu einem gewissen Grad) mit dem Pi, und wir hatten bisher eine großartige Zeit - aber die CLI kann uns nur so weit bringen. Ich habe angefangen, mir andere Toolkits anzusehen, insbesondere wx , Qt und GTK . Diese scheinen alle großartige Bindungen für Linux im Allgemeinen zu haben, obwohl ich nicht in der Lage bin, viele Informationen speziell für den Raspberry Pi zu finden. Ich bin auch offen für andere Toolkits - solange die Python-Bindungen gut sind.

Hat jemand irgendwelche Erfahrungen mit dem Codieren einer dieser auf dem Pi? Gibt es einen einfachen apt-getBefehl, den ich ausführen muss, um die erforderlichen Pakete zu installieren? Besser noch, gibt es ein Toolkit, das zum Raspbian-Image passt?

Hinweis: Ich verwende derzeit Raspbian ohne Probleme, obwohl Arch aufgrund der schwebenden ABI-Probleme mit Mono verlockend ist.

Antworten:


22

Ich würde Tkinter empfehlen, es ist die Standard-GUI-Bibliothek für Python und daher bereits installiert. Die IDLE-IDE (die im Raspbian-Image enthalten ist) unterstützt nicht nur Tkinter, sondern ist selbst eine Tkinter-App. Darüber hinaus enthalten die meisten Python-Bücher mindestens ein Kapitel zum Erstellen von GUIs mit Tkinter. Wenn Sie Webressourcen bevorzugen, sollten Sie das Tkinter-Tutorial von Pythonware lesen . Weitere Informationen und Ressourcen finden Sie auf der Tkinter-Seite von Python.org .


Für das Tkinter-Tutorial gilt der Link für die zweite Seite - hier ist das Intro, falls jemand es möchte: pythonware.com/library/tkinter/introduction/whats-tkinter.htm
Anonymous Penguin

2

Ich habe vor 15 Jahren ein bisschen Zeit mit Tkinter verbracht, dann ein paar Jahre später etwas mit wx. Während ich in der Lage war, Sachen zu erledigen, fand ich sie beide ein bisschen langweilig. Ich weiß nicht, wie sehr sich die Situation verbessert hat, seit ich sie das letzte Mal benutzt habe - oder wie sehr mein eigenes Lernen sie heute einfacher erscheinen lässt.

In den letzten Monaten habe ich mich jedoch mit PySide befasst , einem PyQt-kompatiblen Framework. Unglaublich nützlich ist der Qt-Designer , mit dem Sie Komponenten (Drucktasten, Wählscheiben, Schieberegler, Kontrollkästchen usw.) per Drag & Drop verschieben und als XML-Datei mit der Erweiterung ".ui" speichern können. pyside-uic liest das dann und erzeugt Python-Code. Es gibt einige tolle Tutorial-Videos da draußen.

Bo Milanovich hat eine 29-Video-Serie über Udemy (für 15 US-Dollar), die ich gerade fertig gestellt habe, aber auch mehrere kostenlose, auf der Qt-Website aufgeführte Serien: http://wiki.qt.io/PySide_Video_Tutorials . Bo kann in seinem Unterricht ein bisschen "abgelenkt" sein, wenn er sich auf Tangenten einlässt, aber für 29 Lektionen à 30 Minuten war es definitiv 15 US-Dollar wert.

Ich habe kürzlich auch " Qt Designer - PyQt mit Python GUI Programming Tutorial " ( https://www.youtube.com/watch?v=Dmo8eZG5I2w ) gefunden. Das führte mich zu der Website des Moderators, die Intros für Qt, Tkinter und Kivy bietet . Https://pythonprogramming.net/gui-development-tutorials/ . Ich habe sie nicht gesehen, aber basierend auf dem Tutorial von Qt Designer, das ich gesehen habe, freue ich mich auf die auf pythonprogramming.net.

Ein Teil der offiziellen PyQt- und PySide-Dokumentation fehlt. Ein Großteil davon wurde über einen automatisierten Prozess aus der ursprünglichen Qt-Dokumentation konvertiert, und Teile gingen bei der Übersetzung verloren. Wenn also die Dokumente unter https://pyside.github.io/docs/pyside/ fehlen, lesen Sie die Dokumente unter http://doc.qt.io/ und versuchen Sie, das, was Sie gelesen haben, in Python zu übersetzen. Aber sehen Sie sich zuerst die Tutorials an, da Sie einen langen Weg zurücklegen werden.

Ich habe mir vor ein paar Jahren kurz GTK angeschaut. Es hat auch einen Designer, Lichtung. Ich überlegte, wieder diesen Weg zu gehen, aber für die Dinge, die mich interessiert hatten, schien hinter Qt mehr Energie zu stecken. Ich fange gerade an, Kivy zu erkunden, da es für Touchscreen-Arbeiten zu empfehlen ist.

Ein bisschen spät, aber ich hoffe das hilft.


1

tkinter ist die GUI-Erweiterung von TCL, die sehr früh im Entwicklungszyklus von Python verwendet wurde. IDLE Die Python-Befehlsshell verwendet tkinter.

Für eine grafische Benutzeroberfläche benötigen Sie einen xorg-x11-Dienst (einen Daemon) und einen Präsentationsmanager. In X11 leben die Treiber für die Anzeigegeräte. Dort beginnen die Namen mit xorg-x11-drv-xxxxx. X11 ist ein HID-Controller (Human Interface Device). Mäuse, Tablets, Tastaturen usw. stellen ebenfalls eine Verbindung zum x11-Dienst her.

Mein Präsentationsmanager ist Gnome, aber es gibt mindestens ein halbes Dutzend davon. Ich verstehe, dass der Xfce einer der leichteren ist.

Für GUI-Python-Entwicklungstools verwende ich DrPython (Codebearbeitung, Syntaxprüfung und Debugging). wxGlade ist eine Python-GUI-Entwicklungsumgebung mit Drag & Drop, die Visual Basic sehr ähnlich ist. Beide sind wxPython-Anwendungen und erfordern keine Root-Rechte. Sie können von sourceforge.net heruntergeladen werden

Mein R-Pi-3b ist bestellt. Meine Enkelin hat bereits eine, weshalb die Bestellung aufgegeben wurde. Ich programmiere seit über 60 Jahren und seit mehr als einem Jahrzehnt in Python. Ich habe eine Reihe von Compilern für benutzerdefinierte Sprachen und Client / Server-Apps für die Heimautomation entwickelt.


1

Ich habe eine GUI-Anwendung entwickelt, die auf Himbeer-Pi 2,3 läuft. Ich habe sowohl tkinter als auch pyQt4 verwendet.

Aber wenn sowohl tkinter als auch pyQt4 viel mehr Code zum Platzieren Ihrer Widgets erfordern und es viel Zeit für Layoutanordnungen braucht.

In meinem Vorschlag verwenden Sie QT4-Designer, um Ihre Benutzeroberfläche zu erstellen. Es ist sehr einfach, da Sie die Funktionen zum Ziehen und Ablegen verwenden. Später können Sie mit dem Befehl pyuic4 Python-Skript .py aus einer .ui-Datei generieren und mit qt4-Designer für Bilder in Ihre Benutzeroberfläche einfügen dass Sie die Datei resosurce.rc erstellen müssen, die Sie später mit dem Befehl pyrcc konvertieren müssen.

Es stehen mehrere Tutorials zur Verfügung.


0

Schauen Sie sich appJar an. Die oben erwähnten Drag & Drop-Funktionen von QT4 Designer sind nicht verfügbar. Sie können jedoch in wenigen Minuten eine ansprechende Benutzeroberfläche erstellen, je nachdem, was Sie erreichen möchten. Die Dokumente auf ihrer Webseite zeigen viele großartige Beispiele. http://appjar.info/


-2

Go for Pygtk ist der beste und steinharteste Stall, der jedoch für Anfänger leicht zu finden ist


5
Einige zusätzliche Details würden helfen, diese Antwort zu verbessern (was macht es im Vergleich zu anderen Alternativen am besten, wie installiere ich es, was macht es einfach).
Steve Robillard
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.