[Python-es] Llamar a funcion en otro modulo

José Luis Torre Hernández joseluistorrehernandez en gmail.com
Jue Dic 16 11:33:45 CET 2010


El 16 de diciembre de 2010 01:41, craf <prog en vtr.net> escribió:

> Hola.
>
> El código de consulta es el siguiente:
>
> ------------------------------------------------------
> import Tkinter
> import tkMessageBox
>
>
> class App:
>    def __init__(self, master):
>        master.protocol("WM_DELETE_WINDOW",salir)
>
>
> def salir():
>    if tkMessageBox.askyesno('','Salir'):
>        master.quit()
>
>
> master =Tkinter.Tk()
> app = App(master)
> master.mainloop()
> -------------------------------------------------------
>
> Como verán, al ejecutarlo y cerrar la ventana principal, muestra
> un cuadro de texto, preguntando si se quiere salir, si es así, se cierra
> la aplicación.
>
> Pregunta:
>
> ¿Es posible definir la función salir() en otro modulo aparte?.
> He tratado de hacerlo, pero me arroja el error de que el nombre global
> 'master' no está definido.
>
> Gracias de antemano.
>
>
> Saludos
>
> Cristian Abarzua
>
> Python 2.6 - Ubuntu 9.10
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>


Hola:

La función salir que estás definiendo como una ampliación de los métodos de
la clase App y puedes definirla como quieras.

Si te fijas, la clase App, tiene un argumento que es una instancia de
Tkinter.tk() la cual dispone de un método protocol en el cual le indicas qué
hacer: WM_DELETE_WINDOW, es decir, que elimine la ventana; pero antes llame
al método salir (que puedes definir como quieras ya que es un método nuevo)

Si envías el código donde tienes el error lo podemos analizar.

Saludos
José Luis
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101216/c443da35/attachment.html>


Más información sobre la lista de distribución Python-es