ventana Tk que no se cierra
Alezeia González
Alezeia.Gonzalez en iit.upcomillas.es
Lun Sep 24 14:02:52 CEST 2007
No tengo muy claro dónde tengo que meter el toplevel. Ahora me aparecen
muchas más ventanas que hay que cerrar!
Reenvío el código por si se os ocurre algo...
from Tkinter import *
import tkSimpleDialog
import string
import psspy
import os
class opciones(tkSimpleDialog.Dialog):
def init(self):
self.nombre='pepe'
self.apellidos='garcía'
self.edad=int(9)
def body(self,master):
self.init()
Label(master, text="Nombre:").grid(row=0, column=0, sticky=W)
self.n = Entry(master)
self.n.insert(0,self.nombre)
self.n.grid(row=0, column=1,sticky=E)
Label(master, text="Apellidos:").grid(row=1, column=0,sticky=W)
self.a = Entry(master)
self.a.insert(0,self.apellidos)
self.a.grid(row=1, column=1)
Label(master, text="Edad:").grid(row=7, column=0,sticky=W)
self.e = Entry(master)
self.e.insert(0,self.edad)
self.e.grid(row=7, column=1)
def guardaConf(self):
ierr = psspy.progress_output(1, 'SALIDA STANDARD',(1,1))
print ' entra en guardar'
self.nombre=self.n.get()
self.apellidos=self.a.get()
self.edad=self.e.get()
print ' termina de guardar'
def imprimir(self):
ierr = psspy.progress_output(1, 'SALIDA STANDARD',(1,1))
print 'Datos de configuración:'
print '- Nombre: %s'%(self.nombre)
print '- Apellidos: %s'%(self.apellidos)
print '- Edad: %s'%(self.edad)
def apply(self):
self.guardaConf()
self.imprimir()
root = Tk()
w = opciones(root,'Configuracion nMenos1')
w.mainloop()
ierr = psspy.progress_output(1, 'SALIDA STANDARD',(1,1))
print ' y aquí ya seguiría...'
Gracias.
__________________________________________________
Alezeia González García
Instituto de Investigación Tecnológica (I.I.T.)
Universidad Pontificia Comillas
C/Quintana, 21
28008 Madrid (Spain)
Teléfono : (34) 91 542 28 00 #4296
Fax : (34) 91 542 31 76
e-mail : alezeia.gonzalez en iit.upcomillas.es
__________________________________________________
-----Mensaje original-----
De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En
nombre de Rolando José Torres Sánchez
Enviado el: domingo, 23 de septiembre de 2007 2:03
Para: La lista de python en castellano
Asunto: Re: [Python-es] Re: ventana Tk que no se cierra
usa un toplevel para la ventana de configuracion, y un procedimiento para
guardar los valores y luego un destroy .toplevel
El día 21/09/07, Alezeia González <Alezeia.Gonzalez en iit.upcomillas.es>
escribió:
>
>
> Gracias Gabriel!
>
>
>
> He probado a quitar el mainloop() y la ventana se cierra sola. El problema
> es que cuando vuelvo a ejecutar el programa en Python sin cerrar y volver
> a
> abrir el PSS/E, aparece la ventana sin los valores por defecto que le meto
> por fichero. Al introducir los valores nuevos, no me los actualiza y
> ejecuta
> el caso anterior.
>
>
>
> Lo que necesito es que, al pulsar aceptar, se actualicen los valores y se
> cierre la ventana, y que, al volver a ejecutar, se actualicen los valores
> y
> así no tener que estar abriendo y cerrando PSS/E continuamente.
>
>
>
> He probado con varias llamadas a funciones de Tk:
>
> * w.mainloop()--> hay que cerrarlo a mano
>
> * w.update() --> se cuelga la ventana
>
> * w.withdraw() --> se oculta la ventana y no veo manera de
> cerrarla
>
> * w.show()--> he probado la combinación del anterior con éste,
> pero
> hace lo mismo que sin el w.show()
>
> * w.quit()--> se cuelga la ventana Tk y al ejecutar otra vez no
> actualiza los valores
>
>
>
> Espero encontrar la función adecuada. ¿Alguien la conoce o conoce alguna
> otra forma de hacer el diseño de la ventana?
>
>
>
> Gracias.
>
>
>
>
>
>
>
>
>
> -----Mensaje original-----
> De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En
> nombre de Gabriel Genellina
> Enviado el: viernes, 21 de septiembre de 2007 4:08
> Para: python-es en aditel.org
> Asunto: [Python-es] Re: ventana Tk que no se cierra
>
>
>
> En Thu, 20 Sep 2007 10:33:24 -0300, Alezeia González
>
> <Alezeia.Gonzalez en iit.upcomillas.es> escribi?:
>
>
>
> > Tengo un problema. Estoy haciendo una ventana para un programa en Python
>
> > que
>
> > se ejecuta desde PSS/E. La ventana sólo sirve para introducir unas
>
> > opciones
>
> > de ejecución. Una vez que se introducen, para que el programa siga
>
> > ejecutando, tengo que cerrar la ventana a mano pulsando "X". Necesito
>
> > que la
>
> > ventana desaparezca al pulsar aceptar y que siga ejecutando.
>
> >
>
> >
>
> >
>
> > root = Tk()
>
> > w = opciones(root,'Configuracion nMenos1')
>
> > w.mainloop()
>
> > ierr = psspy.progress_output(1, 'SALIDA STANDARD',(1,1))
>
> > print ' y aquí ya seguiría...'
>
>
>
> Creo que todo se arregla quitando la llamada a w.mainloop()
>
> tkSimpleDialog hace todo lo necesario y tiene su propio loop de mensajes.
>
>
>
> <http://www.pythonware.com/library/tkinter/introduction/dialog-windows.htm
> >
>
>
>
> --
>
> Gabriel Genellina
>
>
>
>
>
> --
> La presente comunicación tiene carácter confidencial y es para el
> exclusivo uso del destinatario indicado en la misma. Si Ud. no es el
> destinatario indicado, le informamos que cualquier forma de distribución,
> reproducción o uso de esta comunicación y/o de la información contenida en
> la misma están estrictamente prohibidos por la ley. Si Ud. ha recibido
esta
> comunicación por error, por favor, notifíquelo inmediatamente al remitente
> contestando a este mensaje y proceda a continuación a destruirlo. Gracias
> por su colaboración.
>
> This communication contains confidential information. It is for the
> exclusive use of the intended addressee. If you are not the intended
> addressee, please note that any form of distribution, copying or use of
this
> communication or the information in it is strictly prohibited by law. If
you
> have received this communication in error, please immediately notify the
> sender by reply e-mail and destroy this message. Thank you for your
> cooperation.
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
--
Rolando José Torres Sánchez
TCL/TK inside Python
MSN:rolandojtorres en hotmail.com
--
La presente comunicación tiene carácter confidencial y es para el exclusivo uso del destinatario indicado en la misma. Si Ud. no es el destinatario indicado, le informamos que cualquier forma de distribución, reproducción o uso de esta comunicación y/o de la información contenida en la misma están estrictamente prohibidos por la ley. Si Ud. ha recibido esta comunicación por error, por favor, notifíquelo inmediatamente al remitente contestando a este mensaje y proceda a continuación a destruirlo. Gracias por su colaboración.
This communication contains confidential information. It is for the exclusive use of the intended addressee. If you are not the intended addressee, please note that any form of distribution, copying or use of this communication or the information in it is strictly prohibited by law. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy this message. Thank you for your cooperation.
Más información sobre la lista de distribución Python-es