Risposte:
No. Ogni anno qualcuno crea una nuova libreria UI di Pygame e poi la abbandona dopo alcune versioni, probabilmente una volta che si rende conto che scrivere layout dei pulsanti è facile ma scrivere una libreria UI completa è un vero lavoro. Il gui
tag sul sito di Pygame ne racconta alcune.
Nel gennaio 2011, ho esaminato cinque toolkit GUI per pygame e ho cercato di farli funzionare tutti con Python 3. I cinque erano: Albow, GooeyPy, PGU, pqGUI e sgc.
Non sono riuscito con GooeyPy , ma ho fatto funzionare gli altri quattro con Python 3. (Volevo provare anche il poutine, di Shandy Brown, ma non sono riuscito a trovarlo e ho completamente ignorato Ocemp.)
Sfortunatamente, Albow e Ocemp sembrano praticamente morti. Albow è stato aggiornato l'ultima volta nel 2009 e Ocemp è stato aggiornato l'ultima volta nel 2008. (Notare che la versione di Albow su pygame.org non è l'ultima.)
PGU (Phil's Pygame Utilities) è stato rilevato e mantenuto da Peter Rogers, e Victor Kam l'ha convertito per lo più in Python 3. È stato aggiornato l'ultima volta a gennaio 2012 e presumibilmente è migliorato da quando l'ho esaminato. (Nota che la versione di PGU su pygame.org non è la più recente.)
sgc era nuovo e ancora molto incompleto quando l'ho guardato. Tuttavia, è attualmente in fase di sviluppo attivo e potrebbe essere molto migliorato. (Nota che la versione di sgc su pygame.org non è la più recente.)
Ho passato ciascuno dei cinque attraverso un semplice contatore Lines-Of-Code per misurare le loro dimensioni:
Questi erano i risultati (a gennaio 2011):
Codice Albow min = 2810, max = 4551 (max = 162% di min) Albow \ demo min = 453, max = 649 GooeyPy \ gooeypy min = 2034, max = 3941 (max = 194% del min) GooeyPy \ esempi min = 178, max = 351 pgu \ pgu min = 2910, max = 7047 (max = 242% di min) incl. pgu \ pgu \ gui min = 1678, max = 4638 (max = 276% del min) pgu \ esempi min = 822, max = 2527 pqGUI.py min = 1586, max = 1834 (max = 116% del min) Esempio.py min = 178, max = 225 sgc (incompleto) min = 889, max = 1243 (max = 140% del min)
In ogni caso, il numero "min" è più rappresentativo della "dimensione" del toolkit, poiché non conta spazi bianchi e commenti. Quando il numero "max" è molto vicino al numero minimo, significa che non c'è molto spazio bianco e non ci sono molti commenti nel codice. pqGUI lo esemplifica, poiché non ha quasi alcun commento (e neanche docstring), il che è un peccato, perché (IMO) ha creato gli elementi della GUI più belli.
Avvertenza importante: le dotstring non vengono conteggiate come commenti! Ciò rende PGU, sgc e GooeyPy, che hanno dotstring, sembrano più grassi e meno ben documentati di quanto non siano realmente, rispetto ad Albow e pqGUI, che mancano di dotstring.
Mi è piaciuta pqGUI perché mi piaceva l'aspetto dei widget che produce, ma non è supportato e non documentato e non sono riuscito a trovare l'autore.
Dei cinque, a partire da gennaio 2011, PGU era il chiaro leader. Ma non ero soddisfatto di tutti e cinque, quindi ho scritto il mio. (Nota: PGU e sgc sono stati entrambi aggiornati e presumibilmente migliorati, da quando li ho guardati.)
Per l'osservazione ironica di Joe Wreschnig (sopra), il mio toolkit GUI è incompleto, come tutti gli altri. Ma ci sono alcune cose da fare.
Tuttavia, manca alcuni importanti controlli che probabilmente vorrai, come le finestre di dialogo di apertura file / combo-box e le tabelle. I controlli esistenti sembrano belli, ma funzionalità come barre del titolo e barre di scorrimento sono numeri fissi di pixel in larghezza, piuttosto che in larghezza regolabile. Il codice è ben commentato e c'è un'app demo con esempi di utilizzo, ma non esiste una documentazione corretta su come usare. Inoltre, è pre-beta, quindi tutto è soggetto a modifiche.
I risultati del contatore della riga di codice sono:
DavesGUI (con codice demo) min = 2267, max = 3055 (max = 135% del min) (senza codice demo) min = 2018, max = 2644 (max = 131% di min) (con commenti scritti) min = 1442, max = 2644 (max = 183% del min)
Se, nonostante queste limitazioni, qualcuno vuole provarlo, contattami via email. Chiedi informazioni su "DavesGUI". Il mio indirizzo email è qui: http://www.burtonsys.com/email/
Di recente ho visto pygtk usato con pygame e funziona davvero bene. Assicurati solo di utilizzare l'evento expose con il widget dell'area di disegno di gtk e di aggiornare i dati di pygame ad ogni passaggio attraverso il loop principale di gtk. Se vuoi che un toolkit gui completo funzioni all'interno di pygame, non accadrà, ma se vuoi un toolkit gui completo da usare con pygame, allora sei fortunato, è pygtk. Puoi anche usare gtk usando il linguaggio di programmazione C e importare ancora pygame come widget nell'area di disegno e aggiornare pygame in python se questo galleggia sulla tua barca e vuoi una velocità turbo. Perché la confusione, basta usare google e trovare la risposta, quindi implementarla, non difficile e senza problemi. A proposito pygame è davvero bello. Quei ragazzi ci hanno messo così tanto lavoro e funziona in modo così efficiente è sorprendente.
Ho aggiunto elementi GUI di base alla mia libreria GameEngine: http://aharrisbooks.net/pythonGame/ch10/ (Incluso in un libro sullo sviluppo di giochi in Python)
Ho creato elementi GUI molto semplici basati sullo sprite standard: un'etichetta, un pulsante, un'etichetta multilinea e una barra di scorrimento mini.
Questi strumenti sono piuttosto basilari, ma sono adeguati per molti usi. Naturalmente, la libreria è completamente open-source, quindi sentiti libero di modificarli se lo desideri. L'unico elemento dell'interfaccia utente che non ho aggiunto (ancora) era un widget di immissione testo. Questo perché il modello di eventi è molto più complesso per questo rispetto agli altri modelli e stavo per scadere.
Sentiti libero di giocarci (che tu usi il libro o meno) e fammi sapere se riscontri problemi. Proverò ad aiutare.
Ho video del mio corso disponibili su http://synapse.cs.iupui.edu/Mediasite/Catalog/
Guarda il corso N451. Questo è quello sullo sviluppo del gioco.
Google summer of code ha aggiunto una nuova GUI: http://blog.sambull.org/pygame-gui-0-2