2010-01-26 10 views

Antwort

1

Here Sie haben eine Erklärung, wie zu integrieren und zu interagieren wxPython und Pygame.

bester GUI-Toolkit in meiner Meinung ist wxPython (eine Bindung für wxWidgets), die für praktisch alles, einschließlich einer OpenGL-Widget GUI-Widgets hat und einig work hat mit SDL als gut gemacht worden.

10

Verwenden Sie nicht wxPython, es ist sehr schwer, mit Pygame gut zu arbeiten, wie in der GUI section des Pygame-Wiki beschrieben.

Zunächst einmal setzt pygame auf den SDL, was bedeutet, dass es nur ein Fenster zu einem Zeitpunkt haben kann. So versuchen implementieren mehrere Gtk, Qt, ... Anwendungsinstanzen, die pygame verwenden, ist eine Unmöglichkeit. Der zweite problematische Grund ist, dass diese Toolkits ihre eigene Hauptschleife, verwenden, die Sie möglicherweise zwingt, ihre Ereignisse Ihrer pygame Instanz und umgekehrt zu verpfänden. Und um einige andere Punkte in Kürze zu nennen: Zeichnen der Toolkit-Elemente auf dem Pygame-Fenster ist unmöglich und der SDL/pygame Vollbild-Modus wird problematisch sein.

Wählen Sie stattdessen eine der Bibliotheken aus, die am Ende dieser Seite aufgeführt sind. Ich benutze selbst pgu.

4

Albow und Ocepm werden nicht aktiv gewartet. PGU wird jetzt von Peter Rogers verwaltet, und Victor Kam hat das meiste davon in Python 3 konvertiert.

Es gibt 5 pygame GUI Toolkits, die ich versucht habe, unter Python 3 zu laufen: Albow, GooeyPy, PGU, pqGUI und sgc. (Ich habe nicht GooeyPy mit Python arbeiten 3, aber die anderen taten.)

ich jeden von ihnen lief durch einen einfachen Linien-Of-Code-Zähler http://code.activestate.com/recipes/527746-line-of-code-counter/ ihre Größen zu messen:

These die Ergebnisse sind:

Albow code  min=2810, max=4551 (max = 162% of min) 
Albow\demo  min= 453, max= 649 

GooeyPy\gooeypy min=2034, max=3941 (max = 194% of min) 
GooeyPy\examples min= 178, max= 351 

pgu\pgu   min=2910, max=7047 (max = 242% of min) 
incl. pgu\pgu\gui min=1678, max=4638 (max = 276% of min) 
pgu\examples  min= 822, max=2527 

pqGUI.py   min=1586, max=1834 (max = 116% of min) 
Example.py  min= 178, max= 225 

sgc (incomplete) min= 889, max=1243 (max = 140% of min) 

(. ich wollte auch poutine, von Shandy Brown versuchen, aber ich konnte ihn nicht finden)

In jedem Fall ist die „min“ Zahl ist repräsentativer für die "Größe" des Werkzeugs Kit, da es Leerzeichen und Kommentare nicht zählt.

Wenn die "max" -Nummer der Min-Zahl sehr nahe kommt, bedeutet dies, dass nicht viel Leerzeichen und nicht viele Kommentare im Code vorhanden sind.pqGUI veranschaulicht das, weil es fast überhaupt keine Kommentare hat, was schade ist, weil (IMO) es die am schönsten aussehenden Widgets macht.

Ich mochte pqGUI, weil ich das Aussehen der Widgets es mag, aber es ist nicht unterstützt und undokumentiert, und ich kann den Autor nicht finden.

Nur zwei der fünf sind aktiv gepflegt/entwickelt: PGU und SGC, und SGC ist neu und unvollständig.

Das macht PGU zum klaren Marktführer.

Dave


P. S. (10/23/2012) - Ich habe ein eigenes GUI-Toolkit für PyGame erstellt. Es ist Widget-basiert und verwendet pygame-Ereignisse für die Kommunikation, so dass es leicht in ein bestehendes pygame-Programm eingefügt werden kann, ohne die Ereignisschleife zu übernehmen. Es unterstützt Formulare, Schaltflächen, Fenster, modale & nicht-modale Nachrichtenfelder & Dialogfelder, vertikale Menüs, Texteingabefelder und Schieberegler (Bildlaufleisten). Überlappende Steuerelemente und Formulare innerhalb von Formularen werden problemlos verarbeitet.

Es ist jedoch nicht wirklich vollständig: Es fehlen einige Steuerelemente, die Sie wahrscheinlich wollen, wie Datei-Öffnen-Dialoge und Tabellen. Die Steuerelemente, die vorhanden sind, sehen gut aus, aber Features wie Titelleisten & Bildlaufleisten sind eine feste Anzahl von Pixeln in der Breite lieber als resizable. Der Code ist gut kommentiert, und es gibt eine Demo-App mit Anwendungsbeispielen, aber es gibt keine richtige Dokumentation zur Verwendung. Und es ist Pre-Beta, so dass sich alles ändern kann.

Wenn trotz dieser Einschränkungen jemand es ausprobieren möchte, dann kontaktieren Sie mich per E-Mail. Fragen Sie nach "DavesGUI". Meine E-Mail-Adresse ist hier: http://www.burtonsys.com/email/

Verwandte Themen