CREACIÓN DE INTERFACES MULTI-PÁGINAS CON TKINTER EN PYTHON

Поделиться
HTML-код
  • Опубликовано: 8 сен 2024
  • Video explicativo de creación de Graphical User Interfaces (GUIs ) en Python, con ayuda de Tkinter y Programación Orientada a Objetos (POO) para correcto desarrollo de múltiples páginas en una misma interfaz.
    Visita mi GitHub para encontrar más proyectos Open-Source:
    - github.com/san...
    Desarrollado por:
    - Santiago Garcia Arango
    Puedes encontrar el repositorio fuente (con varios ejemplos) en el siguiente link:
    github.com/san...
    github.com/san...
    ¡Te felicito por estar motivado a aprender nuevas tecnologías, feliz día!

Комментарии • 34

  • @marceloaldanafaus8090
    @marceloaldanafaus8090 3 года назад +7

    Santiago tenés razón! Hay un déficit en la enseñanza de cuestiones más complejas. Yo armé un CRUD con modelo-vista-controlador que individualmente funciona perfecto. Y por otro lado también armé un menú principal con POO que individualmente funciona bárbaro. Ahora quiero unir esos 2 mundos (o sea que desde el menú, el usuario elija ir al CRUD) y no encuentro la solución. Probando logré que desde el menú pueda ir al CRUD pero en el CRUD todas los métodos del modelo (validaciones con regex, impacto en la base, etc.) ya no funcionan. Voy a ver de nuevo tu video, a ver si consigo alguna pista. De todas maneras, gracias por tocar temas más complejos y mostrarlos en la web

    • @san99tiago
      @san99tiago  3 года назад

      Gracias por tu comentario Marcelo. Tienes toda la razón, al escalar las aplicaciones se debe manejar una arquitectura más organizada con principios SOLID y buscar la abstracción de los códigos en clases principales. Este video es una primera aproximación que te permitirá llevar tus desarrollos a diferentes frames por funcionalidad, permitiéndote luego inyectar dependencias del CRUD y otras funcionalidades para lo que tengas pensado. Te invito a contactarme a través de github.com/san99tiago y con mucho gusto conversamos en profundidad. Feliz día.

    • @marceloaldanafaus8090
      @marceloaldanafaus8090 3 года назад +1

      @@san99tiago Gracias Santiago!. Ya te sigo en GitHub. Nos pondremos en contacto y nuevamente gracias por compartir tu conocimiento!. Habla muy bien de vos! Saludos desde Argentina!

  • @darkogamesxd9237
    @darkogamesxd9237 2 года назад +2

    good video my friend and thanks for this information im going to download your video for study more about this theme.

  • @paulachacon2708
    @paulachacon2708 3 года назад +3

    No puedo explicar lo mucho que tu video me ha ayudado. Mil millones de gracias :)

    • @san99tiago
      @san99tiago  3 года назад

      Muchas gracias Paula por tu comentario. Me alegro que te haya sido de utilidad el video, estaré atento a cualquier inquietud o condición en la que te pueda ayudar. ¡Feliz día!

  • @patrickaliaga6932
    @patrickaliaga6932 3 года назад +1

    Gracias eres un crack

  • @Elalumbre1968
    @Elalumbre1968 2 года назад +1

    Excelente me salió me funciono.

  • @Henry_Nunez
    @Henry_Nunez 3 года назад

    Excelente amigo, gracias 👍🔔

  • @luiscarlostrotta8119
    @luiscarlostrotta8119 3 года назад +1

    Buenas tardes Santiago!!, me encanta la forma que explicas y ayuda mucho como comentas los programas. Consulta: Has compartido muchos programas desde lo básico de python a lo mas complejo!! excelente material, lo que no encuentro son los videos que explican esos programas, están en algún lado?, o el soporte es lo que comentas en cada script?, bueno muy agradecido por tu genial didáctica!!! saludos desde Argentina!!! Luis

    • @san99tiago
      @san99tiago  3 года назад

      Muy buenos días Luis Carlos Trotta. Te comento que se vienen más videos para un futuro, pero aún no tengo una playlist completa de "Python desde cero". Con mucho gusto puedes contactarme y profundizamos en las posibles dudas que no logré explicar bien en el video (o de otros temas que necesites). ¡Feliz día y gracias por los buenos mensajes y el apoyo!

    • @luiscarlostrotta8119
      @luiscarlostrotta8119 3 года назад

      @@san99tiago muchas gracias Santiago!!!

  • @overpaulperezhernandez4109
    @overpaulperezhernandez4109 3 года назад +2

    Hola hola.
    Las ventanas secundarias pueden traer diferentes opciones a las opciones de la ventana principal? Hacer de cuenta como si fuera una presentación de Prezi.
    Gracias.

    • @san99tiago
      @san99tiago  3 года назад

      Buenos días Over Paul. Claro que sí, lo importante es realizar el proceso con el esquema de las clases como se explicó en el video. Ya queda cuestión de tu imaginación y la organización de los widgets como desees. Si requieres un apoyo, puedes contactarme y con mucho gusto te asesoro en estos temas. ¡Feliz día!

    • @overpaulperez1389
      @overpaulperez1389 3 года назад

      @@san99tiago Pero claro que te preguntare. Mira, es que deseo una app con diferentes métodos numéricos (los métodos ya los tengo programados) pero para que sea entendible y didactico lo deseo como en forma de presentación de prezi. Espero me haga entender.

    • @san99tiago
      @san99tiago  3 года назад

      @@overpaulperez1389 Sí es posible, lo importante es abstraer cada una de las funcionalidades que requieras en las respectivas clases de la aplicación. Si ves que se expande demasiado el archivo, puedes incluso separarlo en múltiples archvos por ventana y organizar el GUI mucho mejor.

  • @cristiancontreras352
    @cristiancontreras352 Год назад

    Muy buena explicación, te hago una consulta como muestra un de esas interfaz en una segunda pantalla "Monitor"

    • @san99tiago
      @san99tiago  Год назад

      Muy buenos días Cristian, gracias por tu comentario. Para realizar eso, es un approach diferente, debido a que el objetivo de este video era mostrar múltiples interfaces en una sola ventana. Para lograr tu reto, te recomiendo este tutorial: www.pythontutorial.net/tkinter/tkinter-toplevel/

  • @jonasgpayer
    @jonasgpayer 2 года назад +1

    Para que no sea necesario ejecutar lo mismo en cada frame en show_frame recomiendo el siguiente cambio:
    En la clase App:
    def show_frame(self, frame_name):
    # tengo distinto nombre para el dict
    # y para la clave que en el vídeo.
    frame=self.frames[frame_name]
    frame.at_raise(self)
    En la clase frame_1, frame_2, etc:
    def at_raise(self, controller):
    controller.bind(“”,self.s...
    controller.bind(“

    • @jonasgpayer
      @jonasgpayer 2 года назад +1

      O también:
      def show_frame(self, frame_name):
      frame=self.frames[frame_name]
      frame.at_raise()
      En la clase frame_1, frame_2, etc:
      En el __init__
      ....
      self.controller=controller
      ....
      def at_raise(self):
      self.controller.bind(“

    • @san99tiago
      @san99tiago  2 года назад +1

      Es correcto Jonás, excelente ejemplo de refactorización para aplicar los principios de DRY (Don't Repeat Yourself). Gracias por el aporte, es muy bienvenido y útil para este proyecto. ¡Feliz día!

    • @jonasgpayer
      @jonasgpayer 2 года назад +1

      @@san99tiago gracias a vos!!! Aprendí montón con este vídeo!!!!

  • @rolandojtorres
    @rolandojtorres 2 года назад

    Porque nno usas pestañas que tkinter tambien puede crearlas, y en cada pestaña tiene cada frame.

    • @san99tiago
      @san99tiago  2 года назад

      Buenos días Rolando. Gracias por tu aporte. Esta forma también es una solución válida, pero en el video se utiliza un método para obtener "frames" que puedan ser seleccionados según la lógica necesaria, con un approach de programación orientada a objetos. Saludos.

  • @mitsuki8534
    @mitsuki8534 2 года назад

    Hice el código tal cual y la ventana me sale en blanco ):

    • @san99tiago
      @san99tiago  2 года назад

      Hola Mitsuki, ¿ya intentaste utilizar el código que se encuentra en el link de la descripción? Saludos.

  • @josecid244
    @josecid244 2 года назад

    como puedo insertar una imagen en la clase? me sale negra

    • @san99tiago
      @san99tiago  2 года назад

      Hola Jose, espero que estés muy bien. Para insertar imágenes, hay varias opciones, por ejemplo con: ImageTk.PhotoImage(Image.open("ball.png"))... Revisa los logs y me indicas qué te aparece. ¡Quedo atento y feliz día!

    • @cristheldelsocorromunozcha1243
      @cristheldelsocorromunozcha1243 2 года назад

      lograste hacerlo? tengo esa misma duda

    • @cristheldelsocorromunozcha1243
      @cristheldelsocorromunozcha1243 2 года назад

      @@san99tiago que es logs?, tengo la misma duda me sale negra la pantalla :(

    • @sarce98
      @sarce98 Год назад

      @@san99tiago No funciona esta solución, intenté meter en un label la imagen para que funcionara de fondo y aparece en blanco, si se le da el tamaño de la imagen, solo que aparece completamente en blanco

    •  Год назад

      @@sarce98 Buenas noches Hermano la manera mas facil de insertar una imagen en alguna ventana es la siguiente:
      from tkinter import *
      root = Tk()
      img=PhotoImage(file='c:/users/robert/source/repos/foto.gif')
      boton = Button(image = img).pack()
      root.mainloop()
      de esta manera te funciona al 100 solo tienes que revisar y cambiar el nombre de foto por el nombre que tenga tu foto colocada y la ruta donde se encuentre almacenada la misma.... Suerte...