Desarrollo de interfaces Python

153 views
Skip to first unread message

jazcorp

unread,
Apr 23, 2020, 5:33:07 PM4/23/20
to VFP a Python
Buen día.

Hoy tomé la decisión de aprender un nuevo lenguaje, en este caso Python.

Lo que me queda duda y realizando muchas búsquedas mi consulta es si existe la forma de desarrollar en el caso de aplicaciones de escritorio o web un IDE  para el desarrollo de las interfaces.

Provengo de VFP y la cuestión es saber si existe este IDE de arrastrar y soltar el control que necesito dentro del formulario? O saber ustedes de que forma lo hacen? 
Como les digo soy muy muy nuevo en esto y hasta hoy estoy por iniciar.

Espero su respuestas.

Gracias

Carlos Miguel FARIAS

unread,
Apr 24, 2020, 8:54:04 AM4/24/20
to vfp-a-python
Hay varias opciones, dependiendo de lo que quieras hacer, algunas serán más prácticas que otras.
Para aplicaciones de escritorio tienes tres librerías gráficas con las cuales programar.
TKInter: En windows viene preinstalada con Python. En algunas distros Linux hay que instalarla, es una instalación muy simple, un simple comando te instala todo. En distribuciones Linux Python suele venir también instalado, pero debes revisar porque generalmente la versión es vieja. Python está en la versión 3.8 pero se puede trabajar sin problemas con la 3.6 en adelante. Para desarrollar la interfaz gráfica tienes pygubu. Esta genera un archivo xml con el diseño, luego con una instrucción se carga en el fuente python y completas con los métodos a asociar. Ojo, no junta diseño con código de métodos. O sea que con el mismo diseño puedes tener atrás un código python totalmente diferente y viceversa. Tkinter es muy rápida y muy liviana, pero no tiene muchos widgets (controles disponibles) en comparación con las otras que mencionaré. La parte de impresión va con herramientas apartes.
wxPython: Es un envoltorio sobre wxwidgets. Debe instalarse aparte (en todos los sistemas operativos). Tiene más widgets que tkinter (5 o más variedad). Cosas interesantes, tiene un control que permite embeber en la aplicación de escritor páginas web. Maneja algo de la parte de impresión. Hay para descargar una demo con ejemplos funcionando y con fuente de todos los controles, independientemente de la herramienta de diseño, en esa demo tienes para copiar y pegar cosas muy interesantes. La variedad de controles es muy superior a foxpro (muy lejos). Desde menú ribbon. Elementos anclables, grillas de todo tipo, controles dinámicos, etc.
Conviene descarga la demo y husmear, puede dar ideas muy interesantes, posiblemente nunca pensadas en vfp.
wxformbuilder es la herramienta para diseño de formularios. Es mucho mejor que pygubu. Permite generar el código fuente de conexión en XML (similar a pygubu) o en código fuente de varios lenguajes (C, C++, Lua, PHP y por supuesto Python). Ese código fuente es como un esqueleto de métodos lo que luego importas y sobrescribes lo que necesitas.
NOTA: Se pueden usar tkinter y wxpython en la misma aplicación, ambas con formularios activos.
pySide o pyQT: son lo mismo, una gratis y la otra de pago. Posiblemente la mejor interfaz (no la he probado) y un muy buen diseñador (a mi me abrumó cuando lo probé). También genera aplicaciones muy grandes, la biblioteca es pesada.

En cuanto a diseño Web tienes dos frameworks principales, por lo menos los mas "mentados". Flask que es pequeño rápido, se lo aconseja usar en sistemas pequeños a medianos, igual sistemas grandes pero allí ya te conviene Django, que te genera los CRUDs y consultas básicas de todo el sistema (que luego puedes decorar a gusto) Django no es aconsejable para sistemas chicos porque tiene un monton de cosas para hacer que pueden complicarse.
Dato interesante, tanto flask como django tienen plantillas en común (jinja2), eso implica que si desarrollas algo en flask y quieres pasar a django, el diseño web sería transparente.

De todo hay muchísima información en inglés, no me he matado buscando en castellano. Porque siempre encuentro traducciones viejas.

La comunidad python es enorme. En stackoverflow hay respuestas para casi todo. o puedes engancharte con python.org.ar
Saludos y buen provecho.


--
Has recibido este mensaje porque estás suscrito al grupo "VFP a Python" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a vfp-a-python...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/vfp-a-python/b71c9905-b44d-46f6-822a-b26ee1c2b3e3%40googlegroups.com.

jazcorp

unread,
Apr 24, 2020, 10:52:39 AM4/24/20
to VFP a Python
Muchas gracias por la clara y amplia respuesta.

Me queda muy claro todo con esa explicación. 

Solo te incomodo con una última pregunta, siempre me interesa saber como trabajan los que ya tienen experiencia en algún tema que estoy iniciando. Tengo un sistema de POS, inventario, facturación, cuentas por cobrar, cuentas por pagar, algunos otros módulos muy personalizados.

Que aconsejas para realizar el traslado a un nuevo lenguaje? Que sea de escritorio o sería mejor pensar de una vez hacerlo web y ejecutarlo sobre un navegador(valga la redundancia) aunque se ejecute en una red local?.

Según tu experiencia y tu respuesta que aconsejarías usar (TKinter, wxPython,PySide) (Flask o Django)?

Gracias nuevamente.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a vfp-a-...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages