Manejo de IMÁGENES con TKINTER - incluye ejercicios - PYTHON 100 DÍAS #14

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ธ.ค. 2024

ความคิดเห็น • 92

  • @ProgramacionFacilYT
    @ProgramacionFacilYT  2 ปีที่แล้ว +1

    Teórica del día con todo el código y explicaciones con apuntes:
    programacionfacil.org/blog/manejo-de-imagenes-y-rutas-con-python-y-tkinter/
    Ejercicios del día:
    programacionfacil.org/blog/ejercicios-de-python-y-tkinter-creacion-de-un-login/
    Soluciones de los ejercicios:
    programacionfacil.org/blog/soluciones-de-ejercicios-de-python-y-tkinter/

  • @ProgramacionFacilYT
    @ProgramacionFacilYT  2 ปีที่แล้ว +1

    25:32 Se suponía que ahí tenía que aparecer una imagen de ejemplo. No ha salido, pero con lo que tardo en renderizar, no valía la pena volver a hacerlo por una imagen. Disculpen las molestias.

  • @ismaelrodriguezbelliard7849
    @ismaelrodriguezbelliard7849 6 หลายเดือนก่อน

    Gracias por todo el tiempo que le dedica a tus tutoriales es algo muy grato de tu parte por el solo hecho de que es totalmente gratis para aquellos que decidimos seguirte, espero que la vida de igual forma te recompence por este aporte de conocimiento que nos ofreces muchas gracias.

  • @andresmarzalgordo3160
    @andresmarzalgordo3160 2 ปีที่แล้ว +4

    Espero tus vídeos de Python como el que espera que llegue el viernes.
    De verdad que no me canso de agradecertelos y de lo claro que lo explicas todo
    Un 10

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว +1

      ¡Muchísimas gracias! Ya es mucho decir lo del viernes jajaja.

  • @ProgramacionFacilYT
    @ProgramacionFacilYT  2 ปีที่แล้ว +3

    Contenido del día
    00:12 Inicio de la parte teórica
    00:40 Cambiar el icono de ventana en Tkinter
    01:09 Importar el módulo os de Python
    01:22 Crear capetas en el proyecto
    01:58 Almacenar rutas de carpeta en Python
    03:20 Rutas dinámicas en Python
    03:31 La variable especial __file__ de Python
    06:50 Cargar imágenes en Python
    07:32 El método iconbitmap de Tkinter
    08:42 Importar todo del módulo os
    09:22 El módulo Pillow
    09:40 Descargar e instalar Pillow
    09:53 Actualizar PIP en Python
    11:10 Importar partes de un módulo
    13:30 Carga de imágenes en Python con Pillow
    15:32 ¿Cómo funciona la carga de imágenes en Python?
    16:15 Redimensionar imágenes desde el código
    16:45 El método resize de Pillow
    18:20 Redondear las esquinas de una imagen
    20:22 Parte práctica - 3 Ejercicios
    25:07 Parte práctica proyecto - Instrucciones
    26:35 Parte práctica proyecto - 7 ejercicios
    31:18 Parte práctica proyecto opcional - 6 ejercicios
    43:00 Parte de investigación con el módulo getpass de Python

  • @Freya98HD
    @Freya98HD 8 หลายเดือนก่อน

    Genio!! y también que buen don para la enseñanza tienes, este curso es de lo mejor!!! y encima los ejercicios y los proyectos, ayudan bastante para entender, practicar e interiorizar bien los conceptos, cosa que no hacen otros cursos, solo dan la teoría, de veras es programación Facil!!! estoy aprendiendo mucho con tu curso!! gracias amigo!

  • @durazno45
    @durazno45 ปีที่แล้ว +1

    Gracias maestro. Eres un crack de verdad. Contenido como este se agradece. Ten un gran dia!!!

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      ¡Muchas gracias! Qué también tengas un gran día ☺️.

  • @alondrasuarez4719
    @alondrasuarez4719 2 ปีที่แล้ว +2

    Excelente videotutorial! Muy bien explicado...por favor, continua con este curso. Saludos

  • @arturosaavedra7198
    @arturosaavedra7198 ปีที่แล้ว

    No manches, que chingon canal apenas hoy lo descubrí, super bien explicado y muy pero muy entretenido, mis respetos y admiración por tanta dedicación. Espero que si existan todos los videos hasta el 100 días.. por que no me quiero adelantar.. Saludos..

  • @villanuevatrejo
    @villanuevatrejo 2 ปีที่แล้ว +3

    Gracias por tan buen contenido, y la mayoria de nosotros entendemos que se lleva su tiempo crear el material de calidad que estas creando. Saludos

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว

      ¡Muchas gracias por tenerlo en cuenta! Lo valoro mucho, de verdad. ¡Gracias por visitarme tan a menudo y comentar tanto! Saludos. 😃

  • @josedelossantosperezgalvis7609
    @josedelossantosperezgalvis7609 ปีที่แล้ว +1

    Gracias por la página para redondear imágenes, muy útil

  • @alejandrosuarez2965
    @alejandrosuarez2965 9 หลายเดือนก่อน

    Son muy buenos tus vídeos y las explicaciones, estoy viendo todo lo de Python. Gracias por lo que haces!!

  • @JulioZygadlo
    @JulioZygadlo 10 หลายเดือนก่อน +1

    todas las clases y sus explicaciones son excelentes

  • @jorgeayala7818
    @jorgeayala7818 2 ปีที่แล้ว +1

    El mejor...muchas gracias..

  • @miguelmaximoalvaradorivas6298
    @miguelmaximoalvaradorivas6298 ปีที่แล้ว +1

    Excelente clase . Muchas gracias

  • @PepePerezLopez
    @PepePerezLopez ปีที่แล้ว +1

    sigue así, que lo estás haciendo fenomenal.

  • @JulioZygadlo
    @JulioZygadlo 10 หลายเดือนก่อน

    excelente clases

  • @JoseZurita1991
    @JoseZurita1991 2 ปีที่แล้ว +1

    Pocos likes, visualizaciones y comentarios veo aquí para este pedazo de contenido que te curras!!! 😤😤😤

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว

      Muchas gracias Jose. Poco a poco a ver si va llegando más gente al curso :)

  • @josedelossantosperezgalvis7609
    @josedelossantosperezgalvis7609 ปีที่แล้ว

    Gracias por la buena idea de ensañarnos la ruta dinámica para manejar directorio en OS

  • @francocayo7116
    @francocayo7116 2 ปีที่แล้ว +2

    Buenísimo, sinceramente no pude ver los últimos videos, pero ya me pondré al día.
    ¿Vas a incluir algo de Ciencia de Datos? Saludos.

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว +3

      Hola, aún queda curso, así que seguro que ni lo he acabado para cuando puedas ponerte al día jejeje. Gracias por comentar. Por lo de ciencia de datos, aún no lo tengo 100% seguro, pero creo que sería buena idea incluirlo en el curso. Todo depende del apoyo que tenga, cuánto más, más temas y más capítulos. Incluso puede que llegue a más de 100 si sigue como hasta ahora. Me apunto lo de ciencia de dato, no eres el primero que me lo pide :) ¡Saludos!

  • @Cresnik1702
    @Cresnik1702 2 ปีที่แล้ว +1

    No se por que se a borrado mi comentario pero ahora lo pongo mas grande ¡¡¡ QUIERO SECUESTRARTE PARA QUE IMPARTAS CLASE EN MI MODULO DE PROGRAMACIÓN !!! por que es un primor como esplicas ojala que los profesores que cobran por ello esplicaran la mitad de bien, al final a mi profesora la pongo a ver tus vidieos para que aprenda a enseñar, un abrazo crack te agradedco sobremanera tus esfuerzos.

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว +1

      jajaja, seguro que será que tengo el filtro de TH-cam estricto y al escribir palabras prohibidas como la del secuestro, no le ha gustado.
      Piensa que es tu profesora quien te tiene que aprobar, no yo. No la vayas a enfadar jejeje.
      Por cierto, espero que te estén gustando los vídeos que hago de Java. Aún son muy, pero que muy básicos, pero iré explicando mucho más. De momento, no es lo mismo que Python al ser solo vídeos de hasta 1 minuto, pero llegará el curso largo.
      Un abrazo también para ti.

    • @Cresnik1702
      @Cresnik1702 2 ปีที่แล้ว

      @@ProgramacionFacilYT gracias por decírmelo para buscarlo en el canal por qué aunque tengo la campanita no me a notificado nada voy a mirarlo ahora mismo

  • @bpachecorey
    @bpachecorey ปีที่แล้ว

    Buen video pero tengo una duda, como colocar la imagen como fondo y sobre puesto los label y entry y el button

  • @meisonmvp1302
    @meisonmvp1302 ปีที่แล้ว

    Profe, voy por el minuto 34:55 y tengo una duda. Si utilizamos el operador OR si alguna de las dos sentencias es verdadera el resultado será True.
    Para este ejemplo no sería mejor utilizar el AND ya que para que sea True, las dos sentencias deben ser correctas?

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว

      No, en este caso, evalúa si se equivoca en alguna de las dos. Si por ejemplo, se equivoca solo en el nombre de usuario, le dirá que no coinciden. Si se equivoca en ambas cosas, también le dirá que no coinciden.
      Si lo haces con and, se tiene que equivocar en ambas cosas para que diga que los valores no coinciden, lo que quiere decir, que si solo se equivoca en una cosa, daría false el if y pasaríamos al else.

  • @michaelcastillo-l7c
    @michaelcastillo-l7c ปีที่แล้ว +1

    gran video y gran curso pero tengo un problema para instalar el modulo PIL, las letras salen en amarillo y me da error en la terminal

  • @ElNasusVC
    @ElNasusVC ปีที่แล้ว

    Me encanta complicarme la vida ja, estoy haciendo el proyecto pero estoy utilizando MySQL server para guardar los productos alli y los usuarios que se ingresan, es un reto complicado pero ya tengo el sistema de registro de usuarios y el login solo su Apartado grafico.

  • @marcoantoniodacostabouza6604
    @marcoantoniodacostabouza6604 2 ปีที่แล้ว +1

    Buenos días Maestro. Gracias por este nuevo video. Cada vez esto se complica más. No quiero imaginar que estaremos dando en el día 100..... Espero con ilusión que sigas instruyendonos hasta ese día. Tengo dos dudas:
    - En Visual Studio desde que importe OS con
    import os
    Me sale este error
    "Imports are incorrectly sorted and/or formatted. isort(E) [Lin 1, Col 1]
    Mis primeras 3 lineas de código son:
    from tkinter import *
    import os
    from PIL import ImageTk, ImageColor, Image
    entiendo que dice algo así como que el orden de las importaciones no es correcto. Yo probe a cambiar el orden pero no se soluciono. El error sale pero el programa se ejecuta igualmente
    - Mi otra duda tiene relación con el método join. Y pregunto yo este .join del video 14 es el mismo .join del video 13. Su comportamiento es diferente en el video 13 se intercalaba un string como separador entre otros strings (" *".join("programacion", "facil") ---------> programacion*facil
    En este video 14 simplemente concatena los strings que indican como parametros.

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว +2

      Hola Marco Antonio. La verdad es que sí jajaja, cada vez se complica más.
      Por lo del módulo os, he investigado un poco el error y hay quien reporta que tras una actualización automática de VSCode, se le instaló la extensión "isort". Mira si la tienes instalada y la desinstalas, a ver si desaparece el error.
      Fuente:
      stackoverflow.com/questions/73749897/imports-are-incorrectly-sorted-and-or-formatted-vs-code-python
      Por lo del join, no. Uno pertenece a la clase Str (string) de Python (str.join), que es la que instancia los objetos string y el otro es del módulo os (os.path.join).
      Te deseo mucha fuerza para afrontar los siguientes capítulos. Sigue así, veo que le pones mucho interés y empeño.
      ¡Un saludo!

  • @FcoJRuizC
    @FcoJRuizC ปีที่แล้ว

    Hola Quique, consulta. Sobre colocar una imagen como explicas en el minuto 16:00 me funciona ok incluso lo del resize pero si ese mismo código lo asigno a un "def saca_foto():" para que salga la foto al pulsar un botón, no me aparece la foto aunque si que la ventana se hace mas grande, la imagen no aparece. ¿Podrías aclararme el por que? Gracias

    • @FcoJRuizC
      @FcoJRuizC ปีที่แล้ว

      Ya lo he solucionado. Hay que añadir antes del pack la linea... etiqueta.image = bosque. Lo que no entiendo es por que si esta fuera del def saca_foto(): no hace falta poner esa linea.

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Hola Javi, perdón por tardar en responder, llevo retraso con los comentarios, jejeje.
      Si lo solucionaste, perfecto.
      Si quieres, pásame el código para ver si veo el motivo por el cuál te ocurre esto.
      ¡Un saludo!

    • @FcoJRuizC
      @FcoJRuizC ปีที่แล้ว

      @@ProgramacionFacilYT ni te preocupes, se que tienes mucho trabajo con estos cursos. Lo de pasarte el código es lo mismo que tienes tu pero metido en un "def" para llamarlo desde un botón

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Vale, si la imagen está declarada o reasignada (su variable) en una función, no existe hasta que la función no es llamada. Por eso, me imagino, que en el momento de asignar la imagen al botón, esta no existe. Sería crear la variable de la imagen fuera de la función o llamarla antes de asignarla al botón. Si no sale en el botón, es que no se está cargando.

  • @Mr_Monkyd
    @Mr_Monkyd ปีที่แล้ว

    Gracias crack! eres muy bueno explicando, una preguntita, que tema de vs code usas? es que me ha encantado

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว

      Hola, aquí lo tienes: th-cam.com/video/xUT1sv-PydI/w-d-xo.htmlsi=fSjy5hkoIXxBLp0I

  • @marcoantoniodacostabouza6604
    @marcoantoniodacostabouza6604 2 ปีที่แล้ว

    Buenos días Maestro; repasando los videos y volviendo a hacer los ejercicios me han sugido 2 dudas:
    La primera es en el ejercicio 3 por que en la línea de codigo 25 formateas la lista?
    tu pones ......f"{lista_motocicletas [0]}".......
    yo he puesto directamente la lista ....os.path.join(krpta_motos, lista_imagenes [0])).resize.....
    hay algún motivo que se me escapa??
    La segunda duda es en el mismo ejercicio a la hora de mostrar las imagenes. tu las muestras en 2 lineas, líneas 26 y 27 de código
    muestra_moto_1 = Label(image=motocicleta_1)
    muestra_moto_1.grid(row=0, column=0)
    yo lo he puesto en la misma línea y sin crear variable
    Label(root, image=moto1).grid(row=0, column=0)
    No se, pero me suena que algo dijiste sobre esto.......
    Otra cosa. A lo mejor prefieres que estas dudas, que son un poco personales te las haga llegar por otro medio en vez de publicarlas aquí. Si es así hazmelo saber. Y mil gracias......

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว

      Hola Marco Antonio. Disculpa la espera. Cada día se me retrasan más los comentarios.
      Por lo del ejercicio 3, la principal diferencia entre motocicleta_1 = ImageTk.PhotoImage(Image.open(os.path.join(carpeta_motocicletas, f"{lista_motocicletas[0]}")).resize((400,250))) y motocicleta_1 = ImageTk.PhotoImage(Image.open(os.path.join(carpeta_motocicletas, "moto-1.jpg")).resize((400,250))) es que en el primer caso, la ruta del archivo de imagen se construye dinámicamente utilizando una lista de nombres de archivos y en el segundo caso, se utiliza una ruta estática.
      En el primer caso, se utiliza la función os.path.join para unir la ruta de la carpeta carpeta_motocicletas con el primer elemento de la lista lista_motocicletas para obtener la ruta completa del archivo de imagen. Luego, se utiliza la clase Image de la biblioteca PIL (Python Imaging Library) para abrir el archivo y se utiliza el método resize para cambiar su tamaño a (400, 250). Finalmente, se utiliza la clase PhotoImage de la biblioteca tkinter para crear una imagen de tkinter a partir del archivo de imagen.
      En el segundo caso, se utiliza la misma lógica para construir la ruta del archivo de imagen, pero en lugar de utilizar un elemento de la lista lista_motocicletas, se utiliza una ruta estática, es decir, "moto-1.jpg". Esto significa que la ruta del archivo de imagen siempre será la misma y no cambiará dinámicamente.
      Por lo de la segunda duda, ambas formas son válidas para mostrar una imagen en una ventana de tkinter.
      La forma en que lo has hecho, es decir, en una sola línea y sin crear una variable separada para el widget Label, es una forma más concisa de escribir el código y puede ser más adecuada en algunos casos. Sin embargo, en general, crear una variable separada para el widget puede ser útil para poder hacer referencia a él más adelante en el código y puede hacer que el código sea más legible y fácil de seguir.
      Aparte, que algunas veces, cuando intentas utilizar ciertos métodos, te da error si usas el grid() en la misma línea. Por eso, acostumbro a separarlo en dos líneas.
      Por lo de las dudas, me va perfecto aquí, ya que así le damos un poco de vidilla a la comunidad y estas ayudas, quizás las pueden aprovechar otros.
      Un abrazo y nuevamente, disculpa la espera. ¡Saludos!

  • @joserblancor5957
    @joserblancor5957 ปีที่แล้ว

    hola, estaba cargando la imagen pero me sale este error:
    File "C:\Users\JotaErre\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 319, in _get_default_root
    raise RuntimeError(f"Too early to {what}: no default root window")
    RuntimeError: Too early to create image: no default root window
    Exception ignored in:
    Traceback (most recent call last):
    File "C:\Users\JotaErre\AppData\Local\Programs\Python\Python312\Lib\site-packages\PIL\ImageTk.py", line 131, in __del__
    name = self.__photo.name
    ^^^^^^^^^^^^
    AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'

  • @roners
    @roners 2 ปีที่แล้ว

    He tenido que añadir esto debajo de las importaciones:
    try:
    from PIL import Image
    except ImportError:
    import Image
    porque me daba el error:
    File "d:\A A A VIP\PROGRAMACION\PYTHON\Python 100 dias\Manejo_de_imágenes_con_tkinter.py", line 27, in
    bosque = ImageTk.PhotoImage(Image.open(path.join(carpeta_paisaje, "nature.jpg")).resize((350,200)))
    AttributeError: type object 'Image' has no attribute 'open'
    Gracias por el pedazo de curso.

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว

      Hola, no debería funcionar así. Te debería ir bien igual que a mi. ¿Tienes las importaciones así? ¿ImageTk e Image?
      from tkinter import *
      import os
      from PIL import ImageTk,Image

  • @jeffryortegaperez
    @jeffryortegaperez ปีที่แล้ว

    UNA PREGUNTA CUANDO USO EL .GRID() YA NO PUEDO USAR .PACK() ? O VICEVERSA ?

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Hola, sí que se puede, miraré de hacerte un vídeo explicándolo.

  • @JoGoku
    @JoGoku ปีที่แล้ว

    He seguido el video y me da el soguiente fallo: AtributeError: 'PhotoImage' object has no attribute '_Photoimage__photo'
    Alguna idea de donde está el fallo?

  • @elflaco3886
    @elflaco3886 ปีที่แล้ว

    como hace para ejecutar los print sin ejecutar todo el programa agradesco ayuda gracias!!

  • @maikellugo1180
    @maikellugo1180 ปีที่แล้ว +1

    Buenas noches tengo un pc windows 7 y una version de python vieja, 3.7.8 y carpeta_principal = os.path.dirname(__file__) no me funciona, no da error pero no me muestra la ruta. Logre conseguir otra manera carpeta_principal = os.path.dirname(os.path.abspath(__file__))

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Buenas noches, ambas formas están disponibles en la versión que tienes. Puede que tengas un problema con la ruta. os.path.dirname(os.path.abspath(__file__)) utiliza una ruta absoluta en lugar de una ruta relativa, que es la forma que yo he mostrado. Has hecho bien, no hay ningún problema en hacerlo como lo has hecho.

  • @Aturdiendo
    @Aturdiendo ปีที่แล้ว

    Buenas, tengo un problema, cuando hago la parte del getpass, el código deja de funcionar, pide la primera vez el usuario por consola, y de ahí ya no avanza. Me deja seguir escribiendo todo lo que quiera por consola sin llegar a pedir la primera contraseña.
    No sé a que se debe ese error, he copiado y pegado tu código por si había hecho algo mal, pero pasa exactamente lo mismo con tu código.
    PD: Uso Pycharm.
    PD2: Felicitaciones por este curso, me está encantando y me tiene super enganchado!

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Hola, ¿has probado con otro entorno que no sea PyCharm? Habría que descartarlo primero para saber si está por ahí el problema o viene de otro lado.

    • @Aturdiendo
      @Aturdiendo ปีที่แล้ว +1

      @@ProgramacionFacilYT Buenas, gracias por la respuesta, no había caído en probarlo en otro entorno, gracias por iluminarme como buen noob que soy.
      En efecto, en VsCode se ejecuta bien, por alguna razón se habría cascado Pycharm supongo. Gracias una vez más, a seguir adelante!

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Creo que a otra persona ya le había pasado. Un día me pondré a investigar porqué ocurre eso con Pycharm. ¡Mucho ánimo con el curso! Cualquier duda, ya sabes dónde encontrarme 🙂 Saludos.

    • @Aturdiendo
      @Aturdiendo ปีที่แล้ว

      @@ProgramacionFacilYT muchas gracias!

  • @santiagomontironi7661
    @santiagomontironi7661 ปีที่แล้ว

    holaa, no me quedo claro para que sirve el "import os"

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว

      Hola, el módulo os, lo utilizamos en este capítulo para guardar las rutas de las carpetas dónde están las imágenes. ¿Hay alguna parte en concreto que no entiendes?

  • @isabelagutierrezserna9753
    @isabelagutierrezserna9753 2 ปีที่แล้ว

    Buenos días al ejecutar este ejercicio del dia 14 me aparece un error en la consola donde dice lo siguiente: error en from PIL import imageTk, imageColor, image me pueden decir porque este error

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว

      Hola, ¿has instalado PIL?
      Si es así, ¿podrías enviarme el error entero?

    • @isabelagutierrezserna9753
      @isabelagutierrezserna9753 2 ปีที่แล้ว

      @@ProgramacionFacilYT por donde se lo puedo enviar

    • @isabelagutierrezserna9753
      @isabelagutierrezserna9753 2 ปีที่แล้ว

      from tkinter import*
      import os
      from PIL import ImageTk, imageColorp, Image

  • @generikNomas
    @generikNomas ปีที่แล้ว

    tengo problemas con el pil, ya lo hice varias veces a la instalacion pero no se...

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Hola, escríbeme exactamente el error que te da la consola al intentar instalarlo.

    • @generikNomas
      @generikNomas ปีที่แล้ว +1

      @@ProgramacionFacilYT tranqui, solucione ya puedo seguir con los videos gracias

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว +1

      Jejeje, perfecto. Cualquier duda, ya sabes dónde encontrarme 🙂

    • @rustysilver22
      @rustysilver22 ปีที่แล้ว

      @@generikNomas Hola disculpa como has resuelto el problema?

  • @MEMORONES
    @MEMORONES 2 ปีที่แล้ว

    How? Could you please give ? It will be very helpfull!

  • @nahuela3510
    @nahuela3510 ปีที่แล้ว

    no me salió el proyecto anqué esta copado intentar

  • @elflaco3886
    @elflaco3886 ปีที่แล้ว

    cannot use geometry manager grid inside . which already has slaves managed by pack
    me sale este error quiero ponerle un fondo a una calculadora

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  ปีที่แล้ว

      Eso es porque estás utilizando pack() y grid() a la vez. Aquí tienes una explicación de como usarlos correctamente:
      th-cam.com/video/RCkvyEgHkGQ/w-d-xo.html

  • @lovestuart7791
    @lovestuart7791 2 ปีที่แล้ว +1

    ModuleNotFoundError: No module named 'PIL'

    • @lovestuart7791
      @lovestuart7791 2 ปีที่แล้ว

      no se xq me vota eso ayuda pipi

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว

      Hola, ¿se te ha instalado correctamente con pip?

    • @lovestuart7791
      @lovestuart7791 2 ปีที่แล้ว

      @@ProgramacionFacilYT eh si si lo eh instalado pero igual me vota el error

    • @ProgramacionFacilYT
      @ProgramacionFacilYT  2 ปีที่แล้ว

      ¿Qué versión de Python estás utilizando? Ya que se tiene que corresponder la versión de Python con la versión de Pillow soportada. Por ejemplo, tengo la versión 3.11 de Python y de Pillow la 9.3.
      Dime la versión de Python y la de Pillow que tienes instalada. Para ver la versión de Pillow, pon el pip install Pillow y te saldrá al final de todo el mensaje de la consola, la versión.

    • @lovestuart7791
      @lovestuart7791 2 ปีที่แล้ว

      @@ProgramacionFacilYT la 3.10 debo instalar más reciente ?

  • @eimerduarte5278
    @eimerduarte5278 ปีที่แล้ว

    gran video y gran curso pero tengo un problema para instalar el modulo PIL, las letras salen en amarillo y me da error en la terminal