Es gibt so viele Frameworks zum Schreiben von GUI-Anwendungen mit Python. Aber gibt es einen zentralen Standardrahmen? Zum Beispiel haben wir ein Bündel von .NET / C # in Visual Studio.
Ich denke auch in anderen Perspektiven. Welches GUI-Framework wird in Zukunft in Betracht gezogen, wenn ich ein Interview für einen Python-Programmierer-Job gebe?
Ich frage mich auch, gibt es keine IDE, die die GUI und Python-Sprache integriert. Geschmacksauswahl ist gut, aber Überauswahl wird zur Ablenkung.
Antworten:
Sie können Win32-API-GUI-Apps in Python schreiben, wenn Sie den gesamten Code für das Boilerplate schreiben möchten : PyWin32-Projekt
Persönlich mag ich wxPython . Es ist plattformübergreifend (wird sowohl unter Linux als auch unter Windows voll unterstützt) und gibt es schon seit geraumer Zeit. Wenn Sie dies verwenden möchten, werfen Sie einen Blick auf BoaConstructor . Das ist die IDE für wxPython (oder besser gesagt, eine in und für wxPython geschriebene IDE). Es ist die einzige RAD-IDE speziell für Python, auf die ich gestoßen bin. Sie ist sogar erwähnenswert. Speichern Sie den Qt-UI-Editor (der Qt-UI-Editor kann sowohl für C ++ als auch für PyQT verwendet werden).
Wie Peter in seiner Antwort erwähnte, ist Tk die defakte GUI für ältere Python-Apps, aber sie sehen für den Endbenutzer wirklich nicht besonders hübsch aus. Es gibt einige Erweiterungen, die es ein wenig besser aussehen lassen und die Möglichkeit bieten, die Benutzeroberfläche zu gestalten. Wenn Sie jedoch keine ältere GUI-App verwenden, würde ich nicht empfehlen, sich damit zu beschäftigen.
pyGTK, ebenfalls bereits erwähnt, wäre eine weitere gute Wahl. Es ist ebenfalls plattformübergreifend, obwohl ich noch keine persönlichen Erfahrungen mit der GTK-Entwicklung unter Windows gesammelt habe. PyQT wäre eine bessere Wahl, IMO - Ich denke, die mit der Qt-Bibliothek erstellten GUIs sehen und funktionieren besser als die mit GTK erstellten. Ich finde auch, dass der Signal- / Slot-Event-Mechanismus von Qt einfacher zu handhaben ist. YMMV.
Es gibt wirklich keinen Standard für die Python-GUI-Entwicklung, zumindest nicht den ich gesehen habe, aber von meinen Python-Entwicklerkollegen, mit denen ich im Laufe der Jahre zusammengearbeitet habe, haben sie mir wxPython und PyQT mehr als alle anderen vorgeschlagen Werkzeugsätze. Ich bin mir nicht sicher, ob es eine erhebliche Anzahl von Python-GUI-Entwicklungspositionen gibt, um ehrlich zu sein. Die meiste Python-Entwicklung, die ich im Laufe der Jahre durchgeführt habe, war serverseitig, aber das heißt nicht, dass es derzeit nicht verschiedene Unternehmen gibt, die Open Source für ihre GUI-Apps suchen.
quelle
Tk war früher der Standard, aber es ist wohl simpel und hässlich. Dann wurde Qt ziemlich populär. Gtk ist ebenfalls möglich und deckt die Favoriten auf Linux-basierten Plattformen ab.
Aber du hast recht, es gibt wirklich keine einfache Antwort. Überauswahl ist in der Open Source-Welt schließlich ziemlich verbreitet.
quelle
Es gibt keinen "Standard" und ich stimme zu - die Fülle an Entscheidungen ist ein Schmerz. Was eine integrierte Zwei-Wege-Tools-IDE für Python-GUIs betrifft, frage ich mich auch, warum es anscheinend keine gibt - vielleicht, weil es so viele GUI-Toolkits gibt, die niemand für nur eine von ihnen in eine IDE investieren möchte Sie.
Allerdings bietet PyQt 4.7 mit P3k eine wundervolle Benutzeroberfläche (und viele andere leistungsstarke Funktionen). Siehe http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.html - "Dies ist das Referenzhandbuch für PyQt 4.8.4. PyQt v4 ist ein Satz von Python-Bindungen für v4 des Qt Anwendungsframework von Nokia. "
PyQt ist weit verbreitet und es gibt einige gute Bücher: siehe http://www.qtrac.eu/pyqtbook.html "Schnelle GUI-Programmierung mit Python und Qt" unter anderem (Buch ist ein bisschen veraltet - muss aktualisiert werden für P3k).
Es gibt zwei schwerwiegende Probleme mit PyQt:
1) Es hat einige deutlich "unpythonische" Eigenschaften, da es nur ein dünner Wrapper für die C ++ Qt-Bibliotheken ist. Aber ich habe P3k-PyQt 4.7 empfohlen, weil einige davon in den "neuesten und besten" Paketen behandelt wurden. Schauen Sie sich diesen Beitrag an:
PyQt-Designprobleme
2) Für die kommerzielle Nutzung fallen sowohl für PyQt als auch für Qt ziemlich hohe Lizenzgebühren an.
Eine aufstrebende Alternative zu PyQt ist PySide von Nokia, ein weiterer Python-Wrapper für Qt, der vollständig Open Source ist (allerdings ohne die Qt-Lizenzierung).
Viel über Qt zu wissen, ist in Bezug auf den Markt keine schlechte Sache, und Sie werden es von PyQt erhalten. Ich würde es (oder PySide) ernsthaft in Betracht ziehen, wenn Sie versuchen, sich für eine GUI-Plattform zu entscheiden, auf der Sie Experte werden .
Unabhängig davon, für was Sie sich entscheiden, würde ich empfehlen, tkinter größtenteils zu vermeiden, auch wenn es bei Python "out of the box" ist, weil es extrem begrenzt ist und IMO ein grobes, veraltetes Erscheinungsbild hat.
HTH
quelle
pyGTK ist fruchtbar. Es ist ziemlich einfach zu bedienen und macht GUIs, die nicht schlecht aussehen.
quelle
Gtk3 ist ein GUI-Framework, das sehr ausgereift ist. Es verfügt über native Python-Bindungen (GObject Introspection) und zahlreiche Dokumentationen . Wenn Sie eine Menge GUI machen, ziehen Sie Anjuta in Betracht . Anjuta verfügt über eine Drag & Drop-Oberfläche, mit der Sie Ihre Widgets einfach einrichten können.
WxWidgets ist ziemlich gut, es gibt jedoch keine einfache Möglichkeit, Python-Rückrufe dynamisch zu generieren, wie dies Anjuta für Gtk tut.
PyGtk wird jetzt zugunsten der Gtk3-Python-Bindungen (GObject Introspection) nicht mehr unterstützt
PyQt ist auch ein Player in der Python-GUI, hat aber keine große Community.
BoaConstructor wird länger gewartet und wäre dumm zu benutzen.
quelle