¿Hay algún buen y moderno kit de herramientas de widgets para Pygame? He visto PGU , pero aparentemente no se mantiene.
fuente
¿Hay algún buen y moderno kit de herramientas de widgets para Pygame? He visto PGU , pero aparentemente no se mantiene.
No. Cada año, alguien crea una nueva biblioteca de interfaz de usuario de Pygame y luego la abandona después de algunas versiones, probablemente una vez que se dan cuenta de que escribir diseños de botones es fácil, pero escribir una biblioteca de interfaz de usuario completa es un trabajo real. La gui
etiqueta en el sitio de Pygame narra algunos de estos.
En enero de 2011, miré cinco kits de herramientas GUI para pygame e intenté que todos funcionaran con Python 3. Los cinco fueron: Albow, GooeyPy, PGU, pqGUI y sgc.
No tuve éxito con GooeyPy , pero conseguí que los otros cuatro trabajaran con Python 3. (También quería probar poutine, de Shandy Brown, pero no pude encontrarlo, y pasé por alto a Ocemp).
Desafortunadamente, Albow y Ocemp parecen bastante muertos. Albow se actualizó por última vez en 2009, y Ocemp se actualizó por última vez en 2008. (Tenga en cuenta que la versión de Albow en pygame.org no es la última).
PGUPeter Rogers se hizo cargo de la (Phil's Pygame Utilities) y Victor Kam convirtió la mayor parte en Python 3. Se actualizó por última vez en enero de 2012, y presumiblemente se ha mejorado desde que la examiné. (Tenga en cuenta que la versión de PGU en pygame.org no es la última).
sgc era nuevo y todavía muy incompleto cuando lo miré. Sin embargo, se está desarrollando activamente y podría mejorarse mucho en este momento. (Tenga en cuenta que la versión de sgc en pygame.org no es la última).
Corrí cada uno de los cinco un simple contador de líneas de código para medir sus tamaños:
Estos fueron los resultados (en enero de 2011):
Código de arco mínimo = 2810, máximo = 4551 (máximo = 162% de mínimo) Albow \ demo min = 453, max = 649 GooeyPy \ gooeypy min = 2034, max = 3941 (max = 194% de min) GooeyPy \ ejemplos min = 178, max = 351 pgu \ pgu min = 2910, max = 7047 (max = 242% de min) incl. pgu \ pgu \ gui min = 1678, max = 4638 (max = 276% de min) pgu \ ejemplos min = 822, max = 2527 pqGUI.py min = 1586, max = 1834 (max = 116% de min) Ejemplo.py min = 178, max = 225 sgc (incompleto) min = 889, max = 1243 (max = 140% de min)
En cada caso, el número "min" es más representativo del "tamaño" del kit de herramientas, ya que no cuenta espacios en blanco y comentarios. Cuando el número "máximo" está muy cerca del número mínimo, significa que no hay mucho espacio en blanco y no hay muchos comentarios en el código. pqGUI ejemplifica eso, porque casi no tiene comentarios (y tampoco tiene cadenas de documentos), lo cual es una lástima, porque (IMO) hizo los elementos GUI más bonitos.
Advertencia importante: ¡las cadenas de documentos no se cuentan como comentarios! Eso hace que PGU, sgc y GooeyPy, que tienen cadenas de documentos, se vean más gordas y menos documentadas de lo que realmente son, en comparación con Albow y pqGUI, que carecen de cadenas de documentos.
Me gustó pqGUI porque me gustó el aspecto de los widgets que hace, pero no está soportado ni documentado, y no pude encontrar al autor.
De los cinco, a partir de enero de 2011, PGU era el líder claro. Pero no estaba satisfecho con los cinco, así que escribí el mío. (Nota: PGU y sgc se han actualizado y presumiblemente mejorado, desde que los miré).
Según la observación irónica de Joe Wreschnig (arriba), mi kit de herramientas GUI está incompleto, como todos los demás. Pero tiene algunas cosas a su favor.
Sin embargo, carece de algunos controles importantes que probablemente desee, como los cuadros de diálogo de abrir archivo / cuadro combinado y las tablas. Los controles que existen se ven bien, pero características como barras de título y barras de desplazamiento son números fijos de píxeles de ancho, en lugar de ancho ajustable. El código está bien comentado y hay una aplicación de demostración con ejemplos de uso, pero no hay documentación adecuada sobre cómo usarla. Además, es pre-beta, por lo que todo está sujeto a cambios.
Los resultados del contador de línea de código son:
DavesGUI (con código de demostración) min = 2267, max = 3055 (max = 135% de min) (sin código de demostración) min = 2018, max = 2644 (max = 131% de min) (con cadenas de documentos comentadas) min = 1442, max = 2644 (max = 183% de min)
Si, a pesar de esas limitaciones, alguien quiere probarlo, contácteme por correo electrónico. Pregunte sobre "DavesGUI". Mi dirección de correo electrónico está aquí: http://www.burtonsys.com/email/
Recientemente he visto pygtk usado con pygame y funciona muy bien. Solo asegúrese de usar el evento de exposición con el widget de área de dibujo gtk y actualice los datos de pygame en cada pasada a través del bucle principal de gtk. Si desea que un kit de herramientas de GUI completo funcione dentro de Pygame, esto no sucederá, pero si desea un kit de herramientas de GUI completo para usar con Pygame, entonces tiene suerte, Pygtk es. Incluso puede usar gtk usando el lenguaje de programación C e importar pygame como un widget en el área de dibujo y actualizar pygame en python si eso flota su bote y desea velocidad turboalimentada. Por qué tanto alboroto, solo usa google y encuentra la respuesta y luego impleméntalo, no es difícil y no es exagerado. Por cierto, pygame es realmente genial. Esos tipos han puesto tanto trabajo en ello, y funciona tan eficientemente que es increíble.
He agregado elementos GUI muy básicos a mi biblioteca GameEngine: http://aharrisbooks.net/pythonGame/ch10/ (Incluido en un libro sobre desarrollo de juegos en Python)
Construí elementos GUI muy simples basados en el sprite estándar: una etiqueta, un botón, una etiqueta multilínea y una mini barra de desplazamiento.
Estas herramientas son bastante básicas, pero son adecuadas para muchos usos. Por supuesto, la biblioteca es completamente de código abierto, así que siéntase libre de modificarlos si lo desea. El elemento de la interfaz de usuario que no agregué (todavía) fue un widget de entrada de texto. Esto se debe a que el modelo de eventos es mucho más complejo para esto que los otros modelos, y estaba llegando a una fecha límite.
Siéntase libre de jugar con eso (ya sea que use el libro o no) y avíseme si tiene algún problema. Trataré de ayudar.
Tengo videos de mi curso disponibles en http://synapse.cs.iupui.edu/Mediasite/Catalog/
Mira el curso N451. Ese es el del desarrollo del juego.
Google Summer of Code agregó una nueva GUI: http://blog.sambull.org/pygame-gui-0-2
fuente