From virako.9 en gmail.com Mon Apr 3 15:59:27 2023 From: virako.9 en gmail.com (Victor Ramirez) Date: Mon, 3 Apr 2023 21:59:27 +0200 Subject: [Python-es] Tertulia python. Martes 4 de abril a las 20:00 CEST Message-ID: Hola, Se convoca la Tertulia de la semana: ¿Cuándo? *Martes 4 de abril* a las *20:00 CEST* ¿Dónde? https://meet.jit.si/py2023 Accesible desde cualquier navegador moderno y desde aplicación para Android e iOS. La sala estará bloqueada con clave, que se retirará a la hora de comienzo para permitir el acceso público. ¿Por qué? Porque tenemos ganas de hablar sobre python con más gente. Anímate, no se necesitan conocimientos avanzados, solo ganas de charlar y pasar un buen rato. ANUNCIO: Se busca: Se busca alguien con ganas de editar audio, mientras se sigue publicando el excelente trabajo que realizó Pablo en https://podcast.jcea.es/python/ Se recompensa con mucha satisfacción pero sin dinero. Otros detalles: - Se grabará el audio de la conversación con vistas a una difusión pública posterior (tipo podcast). Entendemos que los participantes están de acuerdo en ser grabados (solo audio, no video). Si alguien tiene pegas con esto lo puede comentar al principio de la tertulia. De todas maneras se recordará al empezar. - Se agradece entrar con vídeo, aunque el sonido esté silenciado, porque hablar a una pantalla llena de recuadros negros resulta confuso y desagradable. No es imprescindible, pero se agradece. - A poder ser, ten el sonido silenciado si no estás hablando. Procura que tu audio tenga calidad y no meter ruido ambiente. Procura usar auriculares para evitar el retorno. - La tertulia no tiene tema definido más allá de hablar de Python como lenguaje. Lo más fácil es romper el hielo con algún problema o algún descubrimiento reciente con el que te hayas tropezado con el lenguaje. Sería interesante que trajeras algo pensado. ¡Trae tu tema! - Al final de la tertulia, recomendamos algo que no tiene porqué estar relacionado con python ni con la informática. Libros, películas, juegos, comidas, deportes, ... ¡Cuéntanos! - *Después de terminar la tertulia, nos quedamos y seguimos charlando de cosas muy interesantes que no son grabadas/no queremos que se graben, ahí lo dejo.* Un saludo. -- Víctor Ramírez de la Corte @virako ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From virako.9 en gmail.com Tue Apr 11 03:55:15 2023 From: virako.9 en gmail.com (Victor Ramirez) Date: Tue, 11 Apr 2023 09:55:15 +0200 Subject: [Python-es] Tertulia python. Martes 11 de abril a las 20:00 CEST Message-ID: Hola, Se convoca la Tertulia de la semana: ¿Cuándo? *Martes 11 de abril* a las *20:00 CEST* ¿Dónde? https://meet.jit.si/py2023 Accesible desde cualquier navegador moderno y desde aplicación para Android e iOS. La sala estará bloqueada con clave, que se retirará a la hora de comienzo para permitir el acceso público. ¿Por qué? Porque tenemos ganas de hablar sobre python con más gente. Anímate, no se necesitan conocimientos avanzados, solo ganas de charlar y pasar un buen rato. ANUNCIO: Se busca: Se busca alguien con ganas de editar audio, mientras se sigue publicando el excelente trabajo que realizó Pablo en https://podcast.jcea.es/python/ Se recompensa con mucha satisfacción pero sin dinero. Otros detalles: - Se grabará el audio de la conversación con vistas a una difusión pública posterior (tipo podcast). Entendemos que los participantes están de acuerdo en ser grabados (solo audio, no video). Si alguien tiene pegas con esto lo puede comentar al principio de la tertulia. De todas maneras se recordará al empezar. - Se agradece entrar con vídeo, aunque el sonido esté silenciado, porque hablar a una pantalla llena de recuadros negros resulta confuso y desagradable. No es imprescindible, pero se agradece. - A poder ser, ten el sonido silenciado si no estás hablando. Procura que tu audio tenga calidad y no meter ruido ambiente. Procura usar auriculares para evitar el retorno. - La tertulia no tiene tema definido más allá de hablar de Python como lenguaje. Lo más fácil es romper el hielo con algún problema o algún descubrimiento reciente con el que te hayas tropezado con el lenguaje. Sería interesante que trajeras algo pensado. ¡Trae tu tema! - Al final de la tertulia, recomendamos algo que no tiene porqué estar relacionado con python ni con la informática. Libros, películas, juegos, comidas, deportes, ... ¡Cuéntanos! - *Después de terminar la tertulia, nos quedamos y seguimos charlando de cosas muy interesantes que no son grabadas/no queremos que se graben, ahí lo dejo.* Un saludo. -- Víctor Ramírez de la Corte @virako ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From virako.9 en gmail.com Tue Apr 18 11:21:12 2023 From: virako.9 en gmail.com (Victor Ramirez) Date: Tue, 18 Apr 2023 17:21:12 +0200 Subject: [Python-es] Tertulia python. Martes 18 de abril a las 20:00 CEST Message-ID: Hola, Se convoca la Tertulia de la semana: ¿Cuándo? *Martes 18 de abril* a las *20:00 CEST* ¿Dónde? https://meet.jit.si/py2023 Accesible desde cualquier navegador moderno y desde aplicación para Android e iOS. La sala estará bloqueada con clave, que se retirará a la hora de comienzo para permitir el acceso público. ¿Por qué? Porque tenemos ganas de hablar sobre python con más gente. Anímate, no se necesitan conocimientos avanzados, solo ganas de charlar y pasar un buen rato. ANUNCIO: Se busca: Se busca alguien con ganas de editar audio, mientras se sigue publicando el excelente trabajo que realizó Pablo en https://podcast.jcea.es/python/ Se recompensa con mucha satisfacción pero sin dinero. Otros detalles: - Se grabará el audio de la conversación con vistas a una difusión pública posterior (tipo podcast). Entendemos que los participantes están de acuerdo en ser grabados (solo audio, no video). Si alguien tiene pegas con esto lo puede comentar al principio de la tertulia. De todas maneras se recordará al empezar. - Se agradece entrar con vídeo, aunque el sonido esté silenciado, porque hablar a una pantalla llena de recuadros negros resulta confuso y desagradable. No es imprescindible, pero se agradece. - A poder ser, ten el sonido silenciado si no estás hablando. Procura que tu audio tenga calidad y no meter ruido ambiente. Procura usar auriculares para evitar el retorno. - La tertulia no tiene tema definido más allá de hablar de Python como lenguaje. Lo más fácil es romper el hielo con algún problema o algún descubrimiento reciente con el que te hayas tropezado con el lenguaje. Sería interesante que trajeras algo pensado. ¡Trae tu tema! - Al final de la tertulia, recomendamos algo que no tiene porqué estar relacionado con python ni con la informática. Libros, películas, juegos, comidas, deportes, ... ¡Cuéntanos! - *Después de terminar la tertulia, nos quedamos y seguimos charlando de cosas muy interesantes que no son grabadas/no queremos que se graben, ahí lo dejo.* Un saludo. -- Víctor Ramírez de la Corte @virako ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From horacio9573 en gmail.com Sat Apr 22 14:52:25 2023 From: horacio9573 en gmail.com (Horacio) Date: Sat, 22 Apr 2023 15:52:25 -0300 Subject: [Python-es] NameError: name 'root' is not defined Message-ID: Buenas Tardes tengo una duda de porque sale este error,, Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python3.10/tkinter/__init__.py", line 1921, in call return self.func(*args) File "/home/hcaste/Escritorio/investigar/Proyecto_Florencia/Programas/Interface/imv02.py", line 24, in salir root.destroy() NameError: name 'root' is not defined en este código import tkinter as tk from PIL import Image, ImageTk class IMG: def __init__(self, root): root.title("Imagen en Tk") root.geometry("800x500") root.resizable(width=False, height=False) root.config(bg="spring green") root.config(relief="sunken") root.config(bd=10) #salir boton_salir=tk.Button(root, text="Salir", command=self.salir) boton_salir["bg"]="red2" boton_salir["fg"]="yellow" boton_salir.pack(side="bottom", anchor="se") pass def salir(self): root.destroy() pass raiz=tk.Tk() app=IMG(raiz) raiz.mainloop() cuando se solicita el método salir? Gracias From miguel en mariaonline.org Sun Apr 23 14:01:53 2023 From: miguel en mariaonline.org (Miguel Sanchez) Date: Sun, 23 Apr 2023 19:01:53 +0100 Subject: [Python-es] NameError: name 'root' is not defined In-Reply-To: References: Message-ID: <20230423190153.32fa5b72@mariaonline.org> El Sat, 22 Apr 2023 15:52:25 -0300 Horacio dijo: > Buenas Tardes tengo una duda de porque sale este error,, > > Exception in Tkinter callback Traceback (most recent call last): File > "/usr/lib/python3.10/tkinter/__init__.py", line 1921, in call return > self.func(*args) File > "/home/hcaste/Escritorio/investigar/Proyecto_Florencia/Programas/Interface/imv02.py", > line 24, in salir root.destroy() NameError: name 'root' is not defined Hola. Estas usando root dentro del método salir. Pero ahí root está fuera del alcance del método. El método es un callback de tu botón salir. Se ejecutó cuando le hiciste clic con el botón izquierdo del ratón al botón que tienes definido en el widget. Te recomiendo uses los widgets ttk en lugar de los clásicos y definas su apariencia mediante el atributo style. También te recomiendo que uses la geometría gird en lugar de la pack. A la larga te resultará más fácil. Dale un vistazo a la documentación en linea que recomiendan en la doc de Python: https://docs.python.org/es/3/library/tkinter.html especialmente al primer enlace. Aquí te dejo una versión ligeramente reformada de tú código. La clase deriva ahora de ttk.Frame, con lo que estas heredando toda la maquinaria de tkinter en tu clase, por eso le puedes hacer app.mainloop a la instancia que creas. Un detalle: self.winfo_toplevel() te devuelve la ventana más externa. Esta no es la ventana de tu app (es decir la ventana de la instancia que has creado al instanciar la clase cuando has hecho app = Img(tk.Tk()). Este self.winfo_toplevel() es el padre de tu instancia. Es un "toplevel" (se ha creado "mágicamente" cuando has instanciado la clase Tk) y le puedes aplicar los métodos de toplevel como .title (un Frame no tiene .title). Cuando instancias la clase, la instancia (self) es un Frame que es hijo de master (master y top en mi código son lo mismo). Pero es en top donde muestras tus widgets. El mainloop lo ejecutas sobre la instancia y a la hora de matarlo, lo haces con self.destroy() Valora poner la creación de los widgets en un método separado del __init__ y es por eso por lo que uso top = self.winfo_toplevel() pues recupero en el método el "master" del __init__. El métódoo __init__ lo dejo para definir otros atributos de la instancia, import sys import tkinter as tk from tkinter import ttk class Img(ttk.Frame): """ La clase """ def __init__(self, master): super().__init__(master) self._crear_widgets() def _crear_widgets(self): top = self.winfo_toplevel() # Esto es equivalente a master top.resizable(height=tk.FALSE, width=tk.FALSE) top.title('Imagen en Tk') top.config(background='spring green', relief='sunken', bd=10) top.protocol('WM_DELETE_WINDOW', self._salir) top.option_add('*tearOff', tk.FALSE) marco = ttk.Frame(top, borderwidth=5, width=800, height=455) marco.grid(row=0, column=0) s = ttk.Style() s.configure('Miboton.TButton', background='red2', foreground='yellow', borderwidth=5) boton_salir = ttk.Button(top, text='Salir', style='Miboton.TButton', command=self._salir) boton_salir.grid(row=1, column=0, sticky='E') def _salir(self, envento=None): self.destroy() sys.exit() # Prefiero llamar a la aplicación así: if __name__ == '__main__': app = Img(tk.Tk()) app.mainloop() Derivar la clase principal de tu aplicación de ttk.Frame es útil cuando generas ventanas secundarias hijas de la principal. Si no quieres que tu clase esté derivada de ttk.Frame debes aplicar el mainloop a la instancia de tk, asignarla a un atributo en el __init__ para poder usarla en los métodos y destruirla cuando terminas con destroy. Podrías hacerlo así: import sys import tkinter as tk from tkinter import ttk class Img(): """ La clase """ def __init__(self, raiz): self.root = raiz self._crear_widgets() def _crear_widgets(self): top = self.root.winfo_toplevel() top.resizable(height=tk.FALSE, width=tk.FALSE) top.title('Imagen en Tk') top.config(background='spring green', relief='sunken', bd=10) top.protocol('WM_DELETE_WINDOW', self._salir) top.option_add('*tearOff', tk.FALSE) marco = ttk.Frame(top, borderwidth=5, width=800, height=455) marco.grid(row=0, column=0) s = ttk.Style() s.configure('Miboton.TButton', background='red2', foreground='yellow', borderwidth=5) boton_salir = ttk.Button(top, text='Salir', style='Miboton.TButton', command=self._salir) boton_salir.grid(row=1, column=0, sticky='E') def _salir(self, envento=None): self.root.destroy() sys.exit() # Prefiero llamar a la aplicación así: if __name__ == '__main__': raiz = tk.Tk() app = Img(raiz) raiz.mainloop() Saludos Miguel Sánchez From virako.9 en gmail.com Tue Apr 25 11:25:25 2023 From: virako.9 en gmail.com (Victor Ramirez) Date: Tue, 25 Apr 2023 17:25:25 +0200 Subject: [Python-es] Tertulia python. Martes 25 de abril a las 20:00 CEST Message-ID: Hola, Se convoca la Tertulia de la semana: ¿Cuándo? *Martes 25 de abril* a las *20:00 CEST* ¿Dónde? https://meet.jit.si/py2023 Accesible desde cualquier navegador moderno y desde aplicación para Android e iOS. La sala estará bloqueada con clave, que se retirará a la hora de comienzo para permitir el acceso público. ¿Por qué? Porque tenemos ganas de hablar sobre python con más gente. Anímate, no se necesitan conocimientos avanzados, solo ganas de charlar y pasar un buen rato. ANUNCIO: Se busca: Se busca alguien con ganas de editar audio, mientras se sigue publicando el excelente trabajo que realizó Pablo en https://podcast.jcea.es/python/ Se recompensa con mucha satisfacción pero sin dinero. Otros detalles: - Se grabará el audio de la conversación con vistas a una difusión pública posterior (tipo podcast). Entendemos que los participantes están de acuerdo en ser grabados (solo audio, no video). Si alguien tiene pegas con esto lo puede comentar al principio de la tertulia. De todas maneras se recordará al empezar. - Se agradece entrar con vídeo, aunque el sonido esté silenciado, porque hablar a una pantalla llena de recuadros negros resulta confuso y desagradable. No es imprescindible, pero se agradece. - A poder ser, ten el sonido silenciado si no estás hablando. Procura que tu audio tenga calidad y no meter ruido ambiente. Procura usar auriculares para evitar el retorno. - La tertulia no tiene tema definido más allá de hablar de Python como lenguaje. Lo más fácil es romper el hielo con algún problema o algún descubrimiento reciente con el que te hayas tropezado con el lenguaje. Sería interesante que trajeras algo pensado. ¡Trae tu tema! - Al final de la tertulia, recomendamos algo que no tiene porqué estar relacionado con python ni con la informática. Libros, películas, juegos, comidas, deportes, ... ¡Cuéntanos! - *Después de terminar la tertulia, nos quedamos y seguimos charlando de cosas muy interesantes que no son grabadas/no queremos que se graben, ahí lo dejo.* Un saludo. -- Víctor Ramírez de la Corte @virako ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: