[Python-es] Llenar Entry con variables

Juan Pedro Lujan Moya jp_lujan1 en yahoo.es
Lun Sep 6 14:50:54 CEST 2010


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: 


#!/usr/bin/env python
#_*_ coding: utf-8 _*_
#file: Propiedades_Tk1.py
#Propiedades

import Tkinter
import win32com.client
from win32com.client import gencache
oApp = win32com.client.Dispatch('Inventor.Application')
oApp.Visible = True
mod = gencache.EnsureModule('{D98A091D-3A0F-4C3E-B36E-61F62068D488}',0,1,0)
oApp = mod.Application(oApp)
oApp.SilentOperation = True
oDoc = oApp.ActiveDocument
prop = oApp.ActiveDocument.PropertySets.Item("Design Tracking Properties")
Descrip = prop('Description').Value
Disenador = prop('Designer').Value

class Inventor_tk(Tkinter.Tk):
    
     def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.initialize()

     def initialize(self):
        self.grid()
        
        #Boton actulizar propiedades
        button = Tkinter.Button(self, text= u"Nueva Pieza", 
command=self.UpdatePropiedad)
        button.grid(column=4, row=5)

        #Descripcion        
        labelDescrip = Tkinter.Label(self, text= "Descripcion: ")
        labelDescrip.grid(column=1, row=2)
        labelDescrip.grid(column=1, row= 2,sticky='W'+'E')

        DescripEntry = Tkinter.StringVar()
        DescripEntry.set (Descrip)
                        

        EntryDescrip = Tkinter.Entry(self, textvariable=DescripEntry)
        #EntryDescrip.bind("<Return>", self.UpdatePropiedad)
        EntryDescrip.grid(column=2,  row= 2,sticky='W'+'E')

        global NuevaDesc
        NuevaDesc = EntryDescrip.get()

        #Diseñador        
        labelDesing = Tkinter.Label(self, text= u"Diseñador: ")
        labelDesing.grid(column=1, row=3)
        labelDesing.grid(column=1, row= 3,sticky='W'+'E')
        
        DesingEntry = Tkinter.StringVar()
        DesingEntry.set (Disenador)
        
        EntryDesign = Tkinter.Entry(self, textvariable=DesingEntry)
        #EntryDesign.bind("<Return>", self.UpdatePropiedad)
        EntryDesign.grid(column=2,  row= 3,sticky='W'+'E')
        

        global NuevoDiseno
        NuevoDiseno = EntryDesign.get()

                
     def UpdatePropiedad(self):
        ###
        ###Fallo pierde valor de las variables, intentar corregir
        ### 
        
        Descrip = prop ('Description').Value = NuevaDesc
        Disenador = prop ('Designer').Value = NuevoDiseno
        print Descrip
        print Disenador
        #Actualiza documento
        oDoc.Update
        
if __name__ == "__main__":
    app = Inventor_tk(None)
    app.title('Propiedades de: '+ oApp.ActiveDocument.DisplayName)
    app.mainloop()



Gracias por vuestra ayuda.



      
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100906/625abe43/attachment.html>


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