User Tag List

Resultados 1 al 14 de 14

Tema: Consejos para app python con gui en raspbian

  1. #1

    Fecha de ingreso
    Sep 2005
    Ubicación
    Madri
    Mensajes
    438
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    13
    Agradecer Thanks Received 
    13
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts

    Consejos para app python con gui en raspbian

    Buenas geperos!

    Estoy empezando a desarrollar un app para raspberry con python y no se que usar para hacer el interfaz gráfico.
    He pensado en hacerlo con plantillas html y Javascript para rellenar los campos variables pero no estoy muy seguro de que sea la mejor opción.
    La verdad es que soy bastante nuevo en python, pero probé por encima tkinter y me pareció un poco feo.
    Me gustaría tener una capa gráfica lo más independiente posible para poder usar la que mejor se adapte según el sistema operativo, aunque de momento solo me planteo hacerla para Linux.

    Espero me podéis dar algún consejo, que siempre alucino con el nivelazo en programación de la gente del foro

    Muchas gracias!!

  2. #2

    Fecha de ingreso
    Mar 2005
    Mensajes
    3,145
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    29
    Thanked in
    Agradecido 19 veces en [ARG:2 UNDEFINED] posts
    ¿Has probado wxWidgets? (wxPython)

    Un saludo, Alex

  3. El siguiente usuario agradece a PharaOnyx este mensaje:

    crossmax (07/06/2016)

  4. #3

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    22,749
    Mencionado
    226 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,240
    Agradecer Thanks Received 
    1,902
    Thanked in
    Agradecido 1,185 veces en [ARG:2 UNDEFINED] posts
    Hay varias opciones. Pon en Google gui Python y veras una lista larga (estoy desde el móvil y no te puedo pegar el enlace).

    Yo he oído cosas buena de unas librerías que se llaman kivy o algo así. Personalmente no he hecho nada de escritorio con Python así que no te sé decir

  5. #4

    Fecha de ingreso
    Jul 2006
    Ubicación
    Madriz
    Mensajes
    1,297
    Mencionado
    28 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    176
    Agradecer Thanks Received 
    322
    Thanked in
    Agradecido 172 veces en [ARG:2 UNDEFINED] posts
    Kivy lo estuve usando yo un tiempo para algunas maquetas de videojuegos, y aunque tenía algunas cosas que me encantaban en cuanto a su diseño, a veces me costaba un poco conseguir lo que quería.
    Para ciertos tipos de layouts y tal si me parecía cómodo, pero por ejemplo para mover sprites y tal ya no tanto.

    Si quieres hacer una app que muestre información, tenga algún tipo de botones, selecciones y tal, podría valerte, internamente usa una especie de lenguaje propio de marcado (digamos que algo análogo a html, pero usando yaml)

    Si te sientes "cómodo" haciendolo web, tal vez podrías plantearte django, yo nunca me cansaré de recomendarlo, además trae un sistema de administración (para poder ver y modificar valores desde una base de datos) muy cómodo y que generalmente puedes adaptar sin tener que hacerte tu tus propias plantillas web.

    También podría valerte python-camelot, que está inspirado en django, pero para aplicaciones de escritorio, usando Qt. Te permite abstraer toda la parte de base de datos (asumiendo que la tengas) usando SQLAlchemy y toda la gui usando Qt de una manera muy sencillita

  6. El siguiente usuario agradece a DarkDijkstra este mensaje:

    crossmax (07/06/2016)

  7. #5

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    22,749
    Mencionado
    226 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,240
    Agradecer Thanks Received 
    1,902
    Thanked in
    Agradecido 1,185 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por DarkDijkstra Ver mensaje
    Kivy lo estuve usando yo un tiempo para algunas maquetas de videojuegos, y aunque tenía algunas cosas que me encantaban en cuanto a su diseño, a veces me costaba un poco conseguir lo que quería.
    Para ciertos tipos de layouts y tal si me parecía cómodo, pero por ejemplo para mover sprites y tal ya no tanto.

    Si quieres hacer una app que muestre información, tenga algún tipo de botones, selecciones y tal, podría valerte, internamente usa una especie de lenguaje propio de marcado (digamos que algo análogo a html, pero usando yaml)

    Si te sientes "cómodo" haciendolo web, tal vez podrías plantearte django, yo nunca me cansaré de recomendarlo, además trae un sistema de administración (para poder ver y modificar valores desde una base de datos) muy cómodo y que generalmente puedes adaptar sin tener que hacerte tu tus propias plantillas web.

    También podría valerte python-camelot, que está inspirado en django, pero para aplicaciones de escritorio, usando Qt. Te permite abstraer toda la parte de base de datos (asumiendo que la tengas) usando SQLAlchemy y toda la gui usando Qt de una manera muy sencillita
    Hombre para sprites y demás quieres usar pygame mejor. Y yo en vez de django recomendaría Flask porque es más pequeño y ligero que Django pero igual de cómodo Aunque para algo de escritorio me parece una opción un poco overkill.


    Aquí hay una lista de opciones para hacer GUI en python bien explicadas: https://wiki.python.org/moin/GuiProgramming

  8. #6

    Fecha de ingreso
    Jul 2006
    Ubicación
    Madriz
    Mensajes
    1,297
    Mencionado
    28 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    176
    Agradecer Thanks Received 
    322
    Thanked in
    Agradecido 172 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por ^MiSaTo^ Ver mensaje
    Hombre para sprites y demás quieres usar pygame mejor. Y yo en vez de django recomendaría Flask porque es más pequeño y ligero que Django pero igual de cómodo Aunque para algo de escritorio me parece una opción un poco overkill.

    Aquí hay una lista de opciones para hacer GUI en python bien explicadas: https://wiki.python.org/moin/GuiProgramming
    Si, la verdad es que pygame es el acercamiento a esos casos, intenté kivy en una especie de port de un juego de mesa, porque me pareció muy curiosa la manera que tiene orientarte en la programación.
    Flask no lo conocía, voy a echarle un ojo

    Y respecto a usarlo para la app, si, tienes razón en que igual es "demasiado", pero oye, yo lo uso en pequeñas tonterías corriendo sobre una virtualización en la nube con 128 megas de ram y me es muy útil...

    Unas preguntas clave, crossmax, tal vez sean ¿que tipo de app exactamente estás haciendo? ¿usas una base de datos o algo así para almacenar la información? ¿necesitas datos en tiempo real? Más que nada por si te sería más útil un framework (aunque sea muy sencillito) o sólo necesitas un par de bibliotecas para hacer una GUI normalita.

  9. El siguiente usuario agradece a DarkDijkstra este mensaje:

    ^MiSaTo^ (07/06/2016)

  10. #7

    Fecha de ingreso
    Sep 2005
    Ubicación
    Madri
    Mensajes
    438
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    13
    Agradecer Thanks Received 
    13
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Gracias a todos por vuestros comentarios. He empezado a instalarme Kivy para probarlo, pero con tantas opciones estoy aturullado, jejeje.

    He estado mirando Django, y también creo que me sobra potencia por todos lados, aunque ya que me pongo a aprender algo seria una opción empezar con algo potente que no tenga limitaciones en un futuro.
    La aplicación seria una especie de terminal de venta, con peculiaridades, pero al fin y al cabo una aplicación con sqlite y sincronizacion de datos con un servidor. Es un plus que el interfaz grafico pueda correrse en local y en remoto (seria entonces buena idea hacerlo web) pero tampoco es algo con lo que quiera cerrarme puertas. Quiero que el interfaz sea lo mas rápido y ágil posible, que el intercambio de datos entre la capa de logica y grafica sea segura (y rapida tambien) por que al fin y al cabo lo que mas valoran los usuarios es la fluidez de la aplicación, mas que corra en un navegador , en tkinter o en lo que sea. Si con estos datos me cerráis un poco las opciones me hacéis feliz, que si tengo que probar un poco de todo no empiezo con la aplicación ni el año que viene xD

    Miles de gracias!

  11. #8

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    22,749
    Mencionado
    226 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,240
    Agradecer Thanks Received 
    1,902
    Thanked in
    Agradecido 1,185 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por crossmax Ver mensaje
    Gracias a todos por vuestros comentarios. He empezado a instalarme Kivy para probarlo, pero con tantas opciones estoy aturullado, jejeje.

    He estado mirando Django, y también creo que me sobra potencia por todos lados, aunque ya que me pongo a aprender algo seria una opción empezar con algo potente que no tenga limitaciones en un futuro.
    La aplicación seria una especie de terminal de venta, con peculiaridades, pero al fin y al cabo una aplicación con sqlite y sincronizacion de datos con un servidor. Es un plus que el interfaz grafico pueda correrse en local y en remoto (seria entonces buena idea hacerlo web) pero tampoco es algo con lo que quiera cerrarme puertas. Quiero que el interfaz sea lo mas rápido y ágil posible, que el intercambio de datos entre la capa de logica y grafica sea segura (y rapida tambien) por que al fin y al cabo lo que mas valoran los usuarios es la fluidez de la aplicación, mas que corra en un navegador , en tkinter o en lo que sea. Si con estos datos me cerráis un poco las opciones me hacéis feliz, que si tengo que probar un poco de todo no empiezo con la aplicación ni el año que viene xD

    Miles de gracias!
    Si lo quieres correr en local y remoto entonces tira por algo como django. Nosotros tenemos un par de aplis así internas en el curro que hice yo con Flasky estamos muy contentos con ello De verdad que te lo recomiendo ampliamente

  12. #9

    Fecha de ingreso
    Sep 2005
    Ubicación
    Madri
    Mensajes
    438
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    13
    Agradecer Thanks Received 
    13
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Pensaba que habia enviado el mensaje y lo he perdido, cachis!

    Te decía que me haces la puñeta Misato (con cariño) porque he estado probando Kivy, con los ejemplos que hay y me ha gustado mucho, tanto la estética como la usabilidad que proporciona.
    Entiendo que con un css currado puedes conseguir el mismo resultado con Flask, pero css y yo no nos llevamos demasiado bien.
    ¿Sabes si carga un poco el sistema tener Flask que lleva incorporado un servidor web, en comparación con Kivy? En un hardware como una Raspi puede traducirse en unas décimas de retardo (Flask vs Kivy)? Lo digo porque prefiero resignarme al acceso remoto si eso acaba reflejando mayor fluidez.
    La duda que tenia para el intercambio de datos entre python y Flask ya he visto que es sencillo. Me gusta.

  13. #10

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    22,749
    Mencionado
    226 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,240
    Agradecer Thanks Received 
    1,902
    Thanked in
    Agradecido 1,185 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por crossmax Ver mensaje
    Pensaba que habia enviado el mensaje y lo he perdido, cachis!

    Te decía que me haces la puñeta Misato (con cariño) porque he estado probando Kivy, con los ejemplos que hay y me ha gustado mucho, tanto la estética como la usabilidad que proporciona.
    Entiendo que con un css currado puedes conseguir el mismo resultado con Flask, pero css y yo no nos llevamos demasiado bien.
    ¿Sabes si carga un poco el sistema tener Flask que lleva incorporado un servidor web, en comparación con Kivy? En un hardware como una Raspi puede traducirse en unas décimas de retardo (Flask vs Kivy)? Lo digo porque prefiero resignarme al acceso remoto si eso acaba reflejando mayor fluidez.
    La duda que tenia para el intercambio de datos entre python y Flask ya he visto que es sencillo. Me gusta.
    Hombre si te gusta kivy pues adelante con ello No he probado personalmente kivy, sólo he hecho aplicaciones web con python primero con django y luego con flask así que no puedo comparar. Entiendo que flask sobrecargará más que kivy porque flask es un framework completo (pequeño y ligero eso sí, no tan monstruoso como django) y kivy son sólo unas librerías gráficas si lo he entendido bien.
    Ya tienes qué ver tú qué quiere hacer y qué te compensa más

  14. El siguiente usuario agradece a ^MiSaTo^ este mensaje:

    crossmax (07/06/2016)

  15. #11

    Fecha de ingreso
    Nov 2005
    Ubicación
    Portugalete
    Mensajes
    7,488
    Mencionado
    33 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    225
    Agradecer Thanks Received 
    156
    Thanked in
    Agradecido 119 veces en [ARG:2 UNDEFINED] posts
    Yo he estado unos días probando Flask y es un framework bastante agradable, y es tambien rápido, pero ya si en una RPi si se nota diferencia entre este y kivy ni idea.

  16. #12

    Fecha de ingreso
    Sep 2005
    Ubicación
    Madri
    Mensajes
    438
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    13
    Agradecer Thanks Received 
    13
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Buenas de nuevo,

    He retomado el tema del Kivy y ando perdido (como siempre). Ya sabéis que soy nuevo con Kivy, medio nuevo con python y no suelo programar frontend asique tengo un cacao hermoso.
    A ver si podéis decidme un poco por donde ir tirando. Os cuento un caso concreto que no sé cómo hacer.
    Tengo una aplicación python que funciona sin gui y atiende al teclado. Cuando se lanza carga unos datos, comprueba base de datos, instancia unos objetos,...
    El caso es que estoy empezando con la pantalla de carga y quiero lanzarla y que muestre una descripción de lo que se está cargando en cada momento.
    Tengo varias pegas, pero todas tiene4n que ver con cómo gestionar el backend (python) con en frontend (kivy).
    En relación a esto me surge:
    - Si lanzo la ventana, hasta que no vuelvo de ella no continúa la aplicación (backend)
    - Si tengo instanciados objetos en la aplicación, como puedo consultarlos para ir mostrando la info que quiero.

    Creo que intentar crear las ventanas con ficheros .kv me está complicando la vida. ¿Para esto que necesito es mejor crear las ventanas directamente en código python? Porque lo que necesito es que la aplicación funcione con o sin ventanas, quiero las capas totalmente independientes.

    Espero podáis guiarme un poco, ya sé que preguntas tan metafisicas son un poco complejas de contestar

    Muchas gracias

  17. #13

    Fecha de ingreso
    Sep 2006
    Ubicación
    Malaga
    Mensajes
    7,573
    Mencionado
    47 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,676
    Agradecer Thanks Received 
    1,930
    Thanked in
    Agradecido 1,293 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por crossmax Ver mensaje
    - Si lanzo la ventana, hasta que no vuelvo de ella no continúa la aplicación (backend)
    Eso es porque es una ventana modal que espera a que el usuario la cierre para seguir con el código, puedes abrir una ventana normal y el código de la aplicación continuara sin esperar a que se cierre la ventana.

    PD: no se como va el Kivy pero en todos los GUI puedes mostrar una ventana de forma modal o no.
    No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.


    It is an undisputed truth that the Atari ST gets the best out of coders. No dedicated hardware, just the CPU and a frame buffer! Some call it Spartan, others name it Power Without The Price, and a select few say `challenge accepted'! --- by spkr from smfx

  18. #14

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    22,749
    Mencionado
    226 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,240
    Agradecer Thanks Received 
    1,902
    Thanked in
    Agradecido 1,185 veces en [ARG:2 UNDEFINED] posts
    Lo que te pasa con la ventana es un problema de concurrencia. No se cómo gestiona eso Kivy ya que no he hecho nada con ello pero lo ideal es que tengas la ventana en un thread y en otro el resto para que uno no bloquee al otro.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •