Comunicacion entre ventanas

Eduardo Matus ematus en gmail.com
Mar Dic 2 22:27:36 CET 2008


pero que te salio.. algun error??
mainWn la dejaste como variable de clase???
self.mainWn.lblValues.set_text(....

2008/12/2 Tomas Hernandez <thernand en inf.utfsm.cl>

> Qué consigo con eso? :O (perdón pero soy novato), me imagino que
> podría ocupar los metodos de la primera ventana?.
>
> Me quedó así:
> class change(GladeConnect):
>   def __init__(self, mainWn):
>        y en la primera:
>   def on_btnChange_clicked(self, btn=None):
>      popup = change(self)
>
> Intenté usar los atributos en la segunda ventana asi:
>   mainWn.lblValues.set_text(txtValues.get_text())
>
> pero no funcionó. Me podrías explicarías por favor?.
>
>
>
> Eduardo Matus wrote:
>
>> tendrias que pasar la instancia de la primer ventana
>> popup = change(self)
>>
>>
>>
>> On Tue, Dec 2, 2008 at 11:00 PM, Tomas Hernandez <thernand en inf.utfsm.cl
>> >wrote:
>>
>>
>>
>>> Gracias por responder Eduardo,
>>>
>>> Claro, puedo acceder a las variables, el problema es que para ello
>>> se me ocurre hacer un boton "refresh" en la ventana principal
>>> para acceder a las variables  y cambiar el contenido del label, pero
>>> lo que yo quiero, es que al apretar el boton de la segunda ventana
>>> cambie automaticamente en la primera.
>>> Por ahora logré pasar valores de la principal a la otra, pero en sentido
>>> contrario no puedo hacerlo automatico.
>>>
>>> Saludos.
>>>
>>>
>>> Eduardo Matus wrote:
>>>
>>>
>>>
>>>> Hola, no estoy seguro, pero si tienes esto
>>>>  def on_btnChange_clicked(self, btn=None):
>>>>                popup = change()
>>>>                popup.wnChange.show()
>>>>
>>>> popup, es una instancia de change, por lo tanto puedes acceder a las
>>>> variables de esa clase despues de cerrarla
>>>>
>>>>
>>>> On Tue, Dec 2, 2008 at 9:40 PM, Tomas Hernandez <thernand en inf.utfsm.cl
>>>>
>>>>
>>>>> wrote:
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>> Hola lista,
>>>>>
>>>>> Hace un tiempo envié un correo sobre lo mismo y nadie puro darme una
>>>>> solución ='(.
>>>>> Esta vez, insisto, por si alguien se motiva a ayudarme =D y explicarme.
>>>>>
>>>>> Tengo 2 archivos .glade y 2 .py:
>>>>> wnEdit.glade (txtValues, btnChange)
>>>>> wnMain.glade (lblValues, btnChange)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ****************************************************************************************
>>>>> change.py:
>>>>>
>>>>>
>>>>>
>>>>> ****************************************************************************************
>>>>> 1 #! /usr/bin/env python
>>>>> 2
>>>>> 3 import pygtk
>>>>> 4 pygtk.require("2.0")
>>>>> 5 import gtk
>>>>> 6 from gtk import glade
>>>>> 7 from GladeConnect import GladeConnect
>>>>> 8
>>>>> 9 class change(GladeConnect):
>>>>> 10         def __init__(self):
>>>>> 11                 GladeConnect.__init__(self, "glade/wnChange.glade")
>>>>> 12
>>>>> 13         def on_btnChange_clicked(self, btn=None):
>>>>> 14                 self.wnChange.hide()
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ****************************************************************************************
>>>>> main.py
>>>>>
>>>>>
>>>>>
>>>>> ****************************************************************************************
>>>>> 1 #!/usr/bin/env python
>>>>> 2
>>>>> 3 import pygtk
>>>>> 4 pygtk.require("2.0")
>>>>> 5 import gtk
>>>>> 6 from gtk import glade
>>>>> 7 from GladeConnect import GladeConnect
>>>>> 8 from change import *
>>>>> 9
>>>>> 10 class main(GladeConnect):
>>>>> 11         def __init__(self):
>>>>> 12                 GladeConnect.__init__(self, "glade/wnMain.glade")
>>>>> 13
>>>>> 14         def on_btnChange_clicked(self, btn=None):
>>>>> 15                 popup = change()
>>>>> 16                 popup.wnChange.show()
>>>>> 17
>>>>> 18         def start(self):
>>>>> 19                 gtk.main()
>>>>> 20                 return 0
>>>>> 21
>>>>> 22 if __name__=="__main__":
>>>>> 23         app = main()
>>>>> 24         app.start()
>>>>>
>>>>>
>>>>>
>>>>> ****************************************************************************************
>>>>>
>>>>> Lo que quiero hacer es:
>>>>> - Abrir la primera ventana
>>>>> - Hacer click en el boton de esa ventana para abrir una nueva
>>>>> - En esa nueva escribir algo
>>>>> - Hacer click en el boton de esa nueva ventana y refrescar
>>>>> automaticamente
>>>>> el label
>>>>> de la primera.
>>>>>
>>>>>
>>>>> ¿cómo puedo hacerlo?. Hasta ahora la dinamica entre ventanas
>>>>> funciona...!
>>>>> _______________________________________________
>>>>> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
>>>>> FAQ: http://listas.aditel.org/faqpyes
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
>>> FAQ: http://listas.aditel.org/faqpyes
>>>
>>>
>>>
>>
>>
>>
>>
>>
>
> _______________________________________________
> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
_______________________________________
Eduardo Andrés Matus Coquelet
Ingeniero Civil Informatico y Telecomunicaciones - U. Diego Portales
Santiago, Chile.
_______________________________________

Celular: (07) 77113825
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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