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
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.
@@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!
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!
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/
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.
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!
@@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.
@@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.
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
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!
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(“
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(“
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!
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.
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!
@@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...
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
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.
@@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!
No puedo explicar lo mucho que tu video me ha ayudado. Mil millones de gracias :)
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!
good video my friend and thanks for this information im going to download your video for study more about this theme.
Excelente me salió me funciono.
Gracias eres un crack
Muy buena explicación, te hago una consulta como muestra un de esas interfaz en una segunda pantalla "Monitor"
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/
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.
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!
@@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.
@@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.
Excelente amigo, gracias 👍🔔
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
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!
@@san99tiago muchas gracias Santiago!!!
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(“
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(“
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!
@@san99tiago gracias a vos!!! Aprendí montón con este vídeo!!!!
Porque nno usas pestañas que tkinter tambien puede crearlas, y en cada pestaña tiene cada frame.
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.
como puedo insertar una imagen en la clase? me sale negra
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!
lograste hacerlo? tengo esa misma duda
@@san99tiago que es logs?, tengo la misma duda me sale negra la pantalla :(
@@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...
Hice el código tal cual y la ventana me sale en blanco ):
Hola Mitsuki, ¿ya intentaste utilizar el código que se encuentra en el link de la descripción? Saludos.