Frage

Einfache Frage:

  • Was API Python GUI sind da draußen, und was sind die Vorteile einer bestimmten API?

Ich bin nicht für einen religiösen Krieg suchen hier, ich bin zu wollen einfach nur einen guten Griff bekommen auf alles, was da draußen in Bezug auf Python GUI-APIs.

War es hilfreich?

Andere Tipps

Ich habe Tkinter und WxPython verwendet. Tkinter ist recht einfach, und verwendet keine nativen Widgets. Dies bedeutet, dass Tkinter Anwendungen das gleiche auf jeder Plattform aussehen werden - diese ansprechend klingen mag, aber in der Praxis bedeutet dies, sie auf jeder Plattform hässlich aussehen: - / Trotzdem ist es ziemlich einfach zu bedienen. Ich fand Denken in Tkinter sehr hilfreich, wenn ich lernte, weil ich noch nie, bevor sie eine GUI-Programmierung erfolgen. Wenn Dinge wie Rahmen und Layout-Algorithmen und Tasten und Bindungen Ihnen vertraut sind, obwohl, können Sie diesen Schritt überspringen.

Sie können Tkinter mit Tix vermehren (aber seien Sie gewarnt, Tix spielt nicht gut mit py2exe). Überprüfen Sie auch Python Megawidgets, die einige erweiterte Kontrollen unter Verwendung der Tkinter Grundlagen aufbaut.

Schließlich Tkinter spielt schön mit der Schale: Sie den Interpreter starten können, tun Dinge wie ‚Import tkinter‘ ‚tk = tkinter.Tk ()‘ usw. und bauen Sie Ihre GUI interaktiv (und es wird reagieren). (Ich denke, das nicht funktioniert, wenn Sie IDLE verwenden, obwohl)

wxPython ist viel besser aus, und Schiffe mit einem viel größeren Bereich der Kontrollen. Es ist Cross-Plattform (obwohl es ein bisschen pingelig auf meinem Mac scheint) und verwendet native Kontrollen auf jeder Plattform. Es ist ein wenig verwirrend, aber. Es wird außerdem mit einer Demo-Anwendung, die die meisten ihrer Funktionen protzt, und stellt ein Testfeld für Sie zu experimentieren. Einige spezifische Gedanken über wxPython:

  • Es gibt drei (?) Verschiedene Möglichkeiten, Widgets zu legen. Ignorieren zwei von ihnen; nur Sizer verwenden. Und selbst dann können Sie fast jedes Layout tun mit nur BoxSizer und GridBagSizer.
  • Alle Wxwidgets IDs haben. Sie brauchen nicht zu kümmern, was die IDs sind, aber in den alten Tagen (glaube ich) Sie zu wissen brauchte, so dass einige alte Code wird mit expliziten ID Zuweisungen übersät sein. Und die meist Demo-Code wird -1 überall als die ID-Parameter (trotz der Tatsache, dass die Methoden haben alle ID als Schlüsselwort Parameter, der standardmäßig ohnehin bis -1).
  • Stellen Sie sicher, dass Sie den Standard WxWidgets docs sowie die wxPython-Demo bekommen -. Sie müssen sie beide
  • Wenn Sie WxPython mit py2exe verwenden wollen, und Sie wollen es auf Windows XP gut aussehen, müssen Sie ein bisschen tricksen in Ihrem setup.py. Siehe hier

PyQt ist ausgezeichnet, wenn Sie Erfahrung oder Interesse an Qt haben.

http://www.riverbankcomputing.co.uk/software/pyqt/intro

Die meisten Python GUI-APIs werden Wrapper um die häufigsten c / c ++ GUI APIs sein. Sie haben einen Python-Wrapper für gtk, einen Python-Wrapper für qt, einen Python-Wrapper für .NET bekommen, etc etc.

So wirklich es hängt davon ab, was Ihre Bedürfnisse sind. Wenn Sie für die einfachste Art und Weise suchen zu ziehen nativen aussehende Widgets auf Linux, Mac und Windows, dann gehen Sie mit wxPython (Python-Wrapper für WX Widgets). Wenn Cross-Plattform nicht zu Ihren Bedürfnissen ist jedoch, andere Bibliotheken könnten nützlicher sein.

Statt eine Liste Ihrer Optionen der Entsendung werde ich meine bescheidene Meinung nach geben:

Ich bin in der Liebe mit wxPython.

Ich habe Qt in C ++ und Tk Weg zurück in den Tcl Tagen verwendet, aber wirklich, was mich wie wxPython ist die Demo, die Sie mit ihm. In der Demo können Sie die verschiedenen Widgets Frames usw. blättern Sie durch die Teil des Rahmens sehen den Quellcode sind und tatsächlich sehen, wie es aussieht, während es ausgeführt wird.

hatte ich einige Probleme, die Linux-Version Build bekommen und installiert, aber jetzt, wo ich es zur Verfügung habe ich benutze es die ganze Zeit. Ich habe WxPython für kleine Datenanalyseanwendungen verwendet und ich habe mehrere interne Tools in Bezug auf den Vergleich Testergebnisse geschrieben, Quellcode verschmelzenden etc.

Ich fand diesen Link, um eine lange Zeit ein Go: http://www.awaretek.com/toolkits .html . Es schlägt vor, eine Tookit basierend auf Ihren Kriterien. Für mich schlägt es WxPython die ganze Zeit. Auf jeden Fall gibt es Ihnen ein paar Noten auf den verschiedenen Toolkits. Was für mich ist das Richtige für Sie kann nicht richtig sein. Aber es gibt Ihnen, wie alle tookits erzielte nach Ihren Kriterien, wenn Sie also nicht die Top-Toolkit aus irgendeinem Grund mögen Sie, welche sind am nächsten Ihren Kriterien finden.

QT / GTK / WxWidgets (früher wxWindows) scheint unter dem reifsten Cross-Plattform-GUI-Toolkits zu sein. Das einzige Problem ist, dass keiner der Standard-Installation von Python installiert ist, so können Sie die Bibliotheken compilieren. Wenn Sie ohne Installation etwas wollen erforderlich, dass gerade läuft, dann mit tkinter gehen, weil wie gesagt es ist standardmäßig mit Python installiert ist.

Wie auch immer meine Kriterien waren 9 auf einfache Bedienung, 10 bei Fälligkeit der Dokumentation / Widgets, 10 auf installierte Basis, 5 auf gui Code-Generatoren, 10 auf nativen Look and Feel für Windows / Linux und 1 und 5 für die letzten zwei, ich bin nicht groß in Mac OSX (auch mit einem 10 hier ist es schon sagt wxpython).

Python ist wirklich einfach zu bedienen. Das ist, was ich empfehlen würde.

Hier ist ihre writeup:

  

Python ist ein GUI-Baukasten   für den Aufbau von Cross-Plattform-Desktop   Anwendungen, die auf Windows, Mac OS X, und   Linux, mit der Sprache Python.

     

Das Python Motto lautet: „Einfache Dinge   sollten einfache und komplexe Dinge   möglich sein sollte. "

     

Python ist für Sie, wenn Sie wollen   entwickeln grafische Anwendungen schnell   und leicht mit einem Minimum an Aufwand   und Codierung. Apples Hypercard ist ein   unsere Inspirationen; einfache, aber   mächtig.

     

Python verwendet wxPython. Wenn du bist   nur bereits mit wxPython,   denken Sie an Python als einfachere Art und Weise   tun WxPython Programme mit einem   ganz Menge Beispiele und Tools bereits   in Ort für Sie und Unterklasse kopieren   und Tools, die Ihnen bauen   Cross-Plattform-Anwendungen.

  

EasyGUI unterscheidet sich von anderen GUIs in diesem EasyGUI ist nicht ereignisgesteuert. Es ermöglicht Ihnen, in einem traditionellen linearen Weise zu programmieren, und Dialoge auf eine einfache Eingabe zu setzen und Ausgang, wenn Sie benötigen. Wenn Sie noch nicht das ereignisgesteuerte Paradigma für die GUI-Programmierung gelernt hat, wird EasyGUI können Sie sofort mit sehr grundlegenden Aufgaben produktiv sein. Später, wenn Sie den Übergang zu einer ereignisgesteuerten GUI Paradigma machen möchten, können Sie dies mit einem leistungsfähigeren GUI-Paket wie anygui, Python, Tkinter, wxPython, etc.

EasyGUI Webseite

WX hat Probleme auf dem Mac.

hatte ich mich hier, als ich einen ereignisgesteuerte GUI-API erhalten möchte ein paar Sachen in Python zu tun. Ich habe wx auf meinem Mac als Teil matplotlib installiert, aber es funktioniert nicht richtig. Es nimmt gewohnt in Put von der Tastatur. Ich habe dies dreimal auf drei verschiedenen Mac-Betriebssystemen installiert, und obwohl es das erste Mal war, die beiden anderen Male hatte ich dieses Problem.

Diese Version I mit Enthought Vertrieb verwenden, so war keine Installation notwendig. Als ich es separat installiert haben, gab es so viele abhängige Einrichtungen, dass es ein Versuch war zu installieren.

Von dem, was ich hier gelesen habe, werde ich Tkinter gehen geben, da dies muss einfach und Cross-Plattform sein, aber ich dachte, ich würde mit Ihnen nur die oben teilen. Ich mag das Mac OS für eine Reihe von unterschiedlichen Gründen, aber Python Tools installieren viel einfacher auf Windows (und wahrscheinlich auch andere Linux). Ich dachte nur, ich würde hier eine Mac Perspektive geben.

Ich mag WxPython oder Tk.

Tk mit der Standard-Python-Distribution kommt, so dass Sie nicht brauchen, etwas anderes zu installieren.

WxPython (wxWigets) scheint viel leistungsfähiger und sieht viel schöner. Es funktioniert auch gut plattformübergreifende (wenn auch nicht perfekt, weil es anders zugrunde liegenden Grafik-API auf diff Systemtypen verwendet)

Ich ziehe PyGTK, weil ich ein GNOME Kerl bin. Mit PyGTK fühlt sich sehr pythonic mir. Der Code Organisation fühlt sich im Einklang, die Dokumentation sauber und gründlich ist, und es ist ein sehr einfaches Toolkit zu gewöhnen (außer vielleicht Treeviews).

Eine einfache GUI Schöpfer verwenden für Python existiert nicht. Das ist erstaunlich wirklich bedenken kleine Skriptsprachen wie AutoIt und AutoHotkey haben große und sehr einfache GUI-Hersteller zu verwenden. Komm, Python Anhänger, kann man nicht besser machen?

Ich habe mit WxPython für ein paar Jahren und Ich mag es eine ganze Menge. Das Beste, was über wxPython ist, dass die Benutzeroberfläche auf den verschiedenen Plattformen nativen fühlt es läuft auf (sehr gut unter Windows und Linux, wenn auch nicht so gut auf O / X).

Die API fehlt eine gewisse Konsistenz, aber Sie schnell daran gewöhnen.

Sie können überprüfen Testuff (schamlose Stecker, wie es mein eigenes Produkt ist) ein Gefühl dafür zu bekommen, was kann mit wxPython erfolgen (obwohl ich sagen muss, mit ziemlich viel Aufwand).

WxPython, und ich gehe davon aus PyGTK auch können wxGlade nutzen Sie am meisten UIs entwerfen helfen Sie erstellen. Das ist ein großes Plus. Sie müssen nicht lernen, wie die GUI-Hand-Code, bis Sie bereit sind. Ich habe gerade mehrere GUI-Programme von wxGlade bevor ich war komfortabel genug, wie wxPython arbeitete einen Schuss an der Hand-Codierung zu nehmen.

PyQt hat ein ähnliches grafischen Layout-Gerät, aber ich habe noch nie viel Glück PyQt immer richtig zu kompilieren. Es gab auch einen Mangel an Tutorials und Dokumentation, die zeigt, wie die endgültige Python-Code zu erstellen; viele der Dokumente fand ich auf die C ++ Version von Qt bezeichnet.

Tkinter ist gut für die schnelle und schmutzige Programme aber realistisch, wenn Sie wxGlade verwenden kann es schneller sein, das Programm mit wxPython zu machen. Zumindest können Sie wxGlade verwenden, um eine visuelle Darstellung des Programms auf einen Client zu zeigen, anstatt die Zeit nehmen, um von Hand Code des „Dummy“ Programms.

Es gibt Python-spezifische gui-api wie Kivy (Nachfolger oder pymt), pygui (basierend auf Pyrex), Pyui und nufox, die mit den robusteren Toolkits wie wxpython, pyqt, pygtk und tkinter nicht vergleichen.

Sie sind nur zusätzliche optionale Werkzeuge.

Das einzige, was das Besondere an ihnen ist diese Python-spezifische api, so wie es prima (perl-spezifische api) und Schuhe (Rubin spezifische api). Es hilft uns zu verstehen, dass, wenn tk tcl-basierte Hafen von api (und andere sind c und c ++ basiert), dann diese api speziell für die jeweiligen drei Skriptsprachen durchgeführt werden, ist.

Von diesen ist Kivy die robusteste, während pygui Coding erwähnt wird sehr Python artig sein, Pyui dest robust ist, aber einen Versuch wert, und alle diese sollten tragbar sein, wo Python oder Python-basierte Anwendung geht.

Dann gibt es jpype, die ein Toolkit verwendbar mit jython und pydev ist, und das ist eigentlich java japi angepasst unter Python / Jython-Schnittstelle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top