• Jueves 14 de Noviembre de 2024, 22:50

Autor Tema:  Llenar un Entry con variable  (Leído 1603 veces)

jp_lujan

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Llenar un Entry con variable
« en: Lunes 6 de Septiembre de 2010, 14:57 »
0
Hola bastante novato en python, estoy intentando hacer un interface con TK.

El codigo que os dejo intenta hacer lo siguiente:
Cuando carga la ventana los Entry se llenan con valores de las propiedades de un fichero, esto funciona sin problemas.

Estas propedades yo las cambio en los entry y cuando doy al boton debería actualizar los valores de todos los entry al fichero, el problema que tengo esque no se como actualizar los valores de los entry, ya que cuando doy al boton me pierde los valores.

Codigo:

Código: Python
  1.  
  2. #!/usr/bin/env python
  3. #_*_ coding: utf-8 _*_
  4. #file: Propiedades_Tk1.py
  5. #Propiedades
  6.  
  7. import Tkinter
  8. import win32com.client
  9. from win32com.client import gencache
  10. oApp = win32com.client.Dispatch('Inventor.Application')
  11. oApp.Visible = True
  12. mod = gencache.EnsureModule('{D98A091D-3A0F-4C3E-B36E-61F62068D488}',0,1,0)
  13. oApp = mod.Application(oApp)
  14. oApp.SilentOperation = True
  15. oDoc = oApp.ActiveDocument
  16. prop = oApp.ActiveDocument.PropertySets.Item("Design Tracking Properties")
  17. Descrip = prop('Description').Value
  18. Disenador = prop('Designer').Value
  19.  
  20. class Inventor_tk(Tkinter.Tk):
  21.    
  22.      def __init__(self,parent):
  23.         Tkinter.Tk.__init__(self,parent)
  24.         self.parent = parent
  25.         self.initialize()
  26.  
  27.      def initialize(self):
  28.         self.grid()
  29.        
  30.         #Boton actulizar propiedades
  31.         button = Tkinter.Button(self, text= u"Nueva Pieza", command=self.UpdatePropiedad)
  32.         button.grid(column=4, row=5)
  33.  
  34.         #Descripcion        
  35.         labelDescrip = Tkinter.Label(self, text= "Descripcion: ")
  36.         labelDescrip.grid(column=1, row=2)
  37.         labelDescrip.grid(column=1, row= 2,sticky='W'+'E')
  38.  
  39.         DescripEntry = Tkinter.StringVar()
  40.         DescripEntry.set (Descrip)
  41.                        
  42.  
  43.         EntryDescrip = Tkinter.Entry(self, textvariable=DescripEntry)
  44.         #EntryDescrip.bind("<Return>", self.UpdatePropiedad)
  45.         EntryDescrip.grid(column=2,  row= 2,sticky='W'+'E')
  46.  
  47.         global NuevaDesc
  48.         NuevaDesc = EntryDescrip.get()
  49.  
  50.         #Diseñador        
  51.         labelDesing = Tkinter.Label(self, text= u"Diseñador: ")
  52.         labelDesing.grid(column=1, row=3)
  53.         labelDesing.grid(column=1, row= 3,sticky='W'+'E')
  54.        
  55.         DesingEntry = Tkinter.StringVar()
  56.         DesingEntry.set (Disenador)
  57.        
  58.         EntryDesign = Tkinter.Entry(self, textvariable=DesingEntry)
  59.         #EntryDesign.bind("<Return>", self.UpdatePropiedad)
  60.         EntryDesign.grid(column=2,  row= 3,sticky='W'+'E')
  61.        
  62.  
  63.         global NuevoDiseno
  64.         NuevoDiseno = EntryDesign.get()
  65.  
  66.                
  67.      def UpdatePropiedad(self):
  68.         ###
  69.         ###Fallo pierde valor de las variables, intentar corregir
  70.         ###
  71.        
  72.         Descrip = prop ('Description').Value = NuevaDesc
  73.         Disenador = prop ('Designer').Value = NuevoDiseno
  74.         print Descrip
  75.         print Disenador
  76.         #Actualiza documento
  77.         oDoc.Update
  78.        
  79. if __name__ == "__main__":
  80.     app = Inventor_tk(None)
  81.     app.title('Propiedades de: '+ oApp.ActiveDocument.DisplayName)
  82.     app.mainloop()
  83.  
  84.  

Gracias por vuestra ayuda.