2009-03-22 9 views
7

Escribo edición frontales en Python desde hace varios años, y estoy harto de micro administrar cada detalle de interfaz de usuario de una ventana o diálogo cada vez.¿Hay una biblioteca de Python que permita construir interfaces de usuario sin escribir mucho código?

¿Existe alguna tecnología que me permita, por ejemplo, especificar las relaciones entre una interfaz diseñada por GTK + Glade y las tablas y registros de una base de datos SQLite para hacer todo el trabajo del intermediario? Me debería ahorrar el trabajo de escribir manualmente controladores de eventos, evaluadores de entrada y ver actualizaciones.

Las tecnologías en cuestión son solo ejemplos, pero quiero quedarme con Python en la medida de lo posible.

+0

Información adicional, unos meses después de hacer esta pregunta: desarrollé mi propia solución para el problema subyacente a la pregunta anterior. Aquí está el resumen del proyecto: "Datenwerk es una biblioteca C autorizada por MIT para GNU/Linux y Windows con el objetivo de proporcionar una API de datos/modelo para aplicaciones que requieren un modelo/vista/patrón de controlador. Es el más adecuado para usar en música, 3D , gráficos vectoriales, escena, video y editores de juegos. Se incluyen enlaces para Python. ". El proyecto se encuentra en https://bitbucket.org/paniq/datenwerk – paniq

Respuesta

5

Además de los ya mencionados puedo añadir:

nunca he utilizado ninguno de ellos lo han hecho ninguna recomendación pero, por lo que vale, he usado al menos 2 complejos programas creados directamente en pygtk que funcionaban tanto en Windows como en Linux.

Creo que Kiwi es el único de estos con soporte para db (a través de la interfaz con SQLAlchemy, SQLObject o Storm), pero me sorprendería si no pudieras usar uno de esos ORM dentro de los otros marcos.

+0

kiwi ofrece prácticamente la funcionalidad que estaba describiendo, muchas gracias. – paniq

4

PyQt y sus modelos pueden automatizar algunas de estas tareas para usted (a cierta cantidad fuera del curso, por ejemplo, llenar widgets con datos de una base de datos y manejar la mayor parte del comportamiento de widgets, almacenamiento en búfer, etc.).

Si desea un enfoque más orientado a objetos para el manejo de SQL, puede buscar en una solución orientada a ORM (por ejemplo, SQLAlchemy).

+0

Bueno, espero que si la biblioteca X está haciendo lo que describí, ni siquiera tendré que usar SQLAlchemy. Echaré un vistazo a PyQt, aún preferiría Gtk +, para el factor de natividad de Ubuntu. – paniq

+0

Para ser nativo de Gnome, quieres decir ... siempre puedes cambiar a KDE si quieres que las aplicaciones Qt se vean más nativas ;-) (bromeando) más o menos –

1

wxGlade puede ayudar, aunque no lo he usado yo mismo, así que no hablo por experiencia.

Boa Constructor aparentemente tiene un constructor wxPython GUI, y también hay PythonCard, aunque el desarrollo en estos dos proyectos parece haberse estancado.

4

Dabo está construido sobre wxPython, por lo que puede que no lo prefiera, pero está diseñado para facilitar el enlace de una GUI a una base de datos, por lo que le recomiendo que lo compruebe si no lo ha hecho. En particular, tiene buenas instalaciones para vincular widgets a los datos y manejar muchos de los casos comunes de desarrollo de GUI.

+0

Estaba buscando algo así, ¡gracias por el enlace! –

1

Los rasgos pueden ser una buena opción para usted. http://code.enthought.com/projects/traits/docs/html/TUIUG/index.html

Tan simple como es asignar una interfaz de usuario a un objeto, no parece demasiado exagerado para incorporar SQLAlchemy para la persistencia.

+0

interesante. ¿tienes alguna experiencia personal con esta biblioteca? a primera vista, parece que en realidad no hace otra cosa que la ocupada economía aristocrática. pero sigo leyendo. – paniq

+0

bien lo he visto. el concepto es ciertamente interesante, pero parece que la parte de UI no es muy profunda, al menos a juzgar por el manual. – paniq

+0

Mi experiencia con esto es bastante ligera. Lo mencioné aquí porque tenía las mismas preguntas que tenía cuando me tropecé con él hace un par de meses. Este ppt parece profundizar en la capacidad de UI de Rasgos http://tinyurl.com/d4rwhp –

0

que tuvieron mucho éxito con wxPython, pero eso fue hace algunos años y puede haber mejores soluciones nuevas ...

1

No es un buen libro sobre wxPython, "wxPython en acción", que puede' Se puede decir de algunas de las otras soluciones. No tocar a los demás.He tenido éxito en el desarrollo con wxPython en el pasado y viene con un gran conjunto de aplicaciones de demostración con código fuente desde el cual puedes tomar prestado generosamente.

El mejor diseñador de interfaz de usuario que encontré para las aplicaciones wxPython es comercial, Anthemion DialogBlocks. Es por uno de los programadores wxPython y vale la pena el dinero. Otras soluciones para el diseño de la interfaz de usuario incluyen wxGlade (lo encontré utilizable pero no funcional) y Boa Constructor (no lo he usado). Wing IDE también podría tener uno. El editor de Python de Stani incluye wxGlade, creo. Hay muchos otros proyectos que realmente no funcionan o que son bastante antiguos.

En lo que respecta a la automatización de SQL, como dice otra contestadora, consideraría la alquimia SQL, pero la curva de aprendizaje para una aplicación pequeña podría ser demasiado y sería mejor ir directamente a odbc. La mejor api odbc es la utilizada por Django, pyodbc.

Ha pasado un tiempo desde que me desarrollé con estas herramientas, por lo que puede haber algo más nuevo para cada una, pero en el momento estas fueron definitivamente las mejores de mi clase en mi opinión.

0

Ok, esta es una solución no convencional, pero escríbete un generador de código. Lo he hecho varias veces usando Mako. Entonces en mi caso inspecciono automáticamente una tabla que columnas contiene y tipeo y genero clases a partir de eso. Es más trabajo por adelantado, pero hace exactamente lo que desea y es reutilizable en proyectos posteriores.

Cuestiones relacionadas