Python/Pmw

Martha Lucía Gallego López mgallegol en gmail.com
Vie Mar 7 16:59:06 CET 2008


Hola a todos los listeros:  Trabajo sobre la versión python 2.4 en plataforma
windows xp

el siguiente código me permite introducir n datos; cada vez que
inserto un dato me pregunta desea ingresar otro dato(SI/NO); una vez
cliqueado NO me gustaria presentar en ventana el resultado de todos
los valores que se introdujeron, he considerado hacerlo a través de
listas, podrían darme alguna luz por favor de como hacerlo.

Agradezco su ayuda.

#El problema de este código es que me muestra el último valor
#digitado las n veces que introduci datos; otra cosa es que si
#destruyo la ventana donde estoy insertando datos no me #muestra nada
de valores. Como almaceno los datos para #destruir la ventana donde
esta el entry????

cordial saludo,

Martha L.

---------------------------INICIO------------------------------------------------
from Tkinter import *
import Pmw
def calculo(name,index,mode):
   global x1
   x1= valor1.get()
   if x1:
       x1= float(x1)
   else:
       valor1.set(x1)
       x1=0

def lectura(bcerrar):
   dialogo.deactivate(bcerrar)

def continuar(res):
   if res=='SI':
       dialogoContinuar.deactivate(res)
       dato1()
   else:
       dialogoContinuar.deactivate(res)
       r.destroy()
       ri=Toplevel()
       c=0
       for n in range(r.num):
           Label(ri, textvariable=valor1).grid(row=c, column=0)

           c=c+1
       ri.mainloop()
def ok():
   dialogoContinuar.activate(geometry = 'centerscreenalways')

def dato():
   global r, dialogo, dialogoContinuar,valor1, mensajeContinuar, ldato, c2
   r=Tk()
   r.num=1
   ldato=[]
   valor1=DoubleVar()
   valor1.set(float(0.0))
   valor1.trace_variable("w", calculo)
   for n in range(r.num):
       Label(r, text='%d'%r.num, width=4).grid(row=0, column=0)
       c2=Entry(r, textvariable=valor1, width=4).grid(row=1, column=0)
       ldato.append(c2)

       Button(r, text='Continua', command=ok).grid(row=2, column=0)
       dialogo = Pmw.MessageDialog(r,
                               title = 'Aviso',
                               message_text= 'No ha ingresado datos',
                               iconpos = 'w',
                               icon_bitmap = 'error',
                               defaultbutton = 0,
                               command=lectura)
       dialogo.iconname('Aviso')
       dialogo.withdraw()
       dialogoContinuar= Pmw.Dialog(r,
                                buttons = ('SI', 'NO'),
                                command=continuar)
       dialogoContinuar.withdraw()
       mensajeContinuar= Label(dialogoContinuar.interior(),
                           text='¿desea ingresar otro dato?',
                           background='black',
                           foreground='white',
                           pady=20)
       mensajeContinuar.pack(expand = 1, fill = 'both', padx = 4, pady = 4)

       r.mainloop()

def dato1():

   r.num=r.num+1
   for n in range(r.num):
       Label(r, text='%d'%r.num, width=4).grid(row=0, column=0)
       c2=Entry(r, textvariable=valor1, width=4).grid(row=1, column=0)

       Button(r, text='Continua', command=ok).grid(row=2, column=0)
       dialogo = Pmw.MessageDialog(r,
                               title = 'Aviso',
                               message_text= 'No ha ingresado datos',
                               iconpos = 'w',
                               icon_bitmap = 'error',
                               defaultbutton = 0,
                               command=lectura)
       dialogo.iconname('Aviso')
       dialogo.withdraw()
       dialogoContinuar= Pmw.Dialog(r,
                                buttons = ('SI', 'NO'),
                                command=continuar)
       dialogoContinuar.withdraw()
       mensajeContinuar= Label(dialogoContinuar.interior(),
                           text='¿desea ingresar otro dato?',
                           background='black',
                           foreground='white',
                           pady=20)
       mensajeContinuar.pack(expand = 1, fill = 'both', padx = 4, pady = 4)

d=dato()
-----------------------------FIN---------------------------------------------------------
_______________________________________________
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