Me gustaría crear un StringVar() que se ve algo como esto:

someText = "The Spanish Inquisition" # Here's a normal variable whose value I will change

finalmente

TkEquivalent = StringVar() # and here's the StringVar()

TkEquivalent.set(string(someText)) #and here I set it equal to the normal variable. When someText changes, this variable  will too...

Sin EMBARGO:

TkEquivalent.set("Nobody Expects " + string(someText))

Si hago esto, el StringVar() dejará de actualizar automáticamente! ¿Cómo puedo incluir ese texto estático y todavía tienen la StringVar() se actualiza para reflejar los cambios realizados en someText?

Gracias por tu ayuda.

  • No hay código necesario para dar contexto a su pregunta. Adivinar en lo que usted está tratando de preguntar, Tkinter las variables vinculadas no se actualizará hasta que el tk bucle principal está inactivo. Si usted está atascado en el código de Python, entonces el bucle de eventos no es la ejecución y la información no va a pasar entre la interfaz de usuario y las variables vinculadas. Esto está bien descrito en el infohost.nmt.edu/tcc/help/pubs/tkinter/control-variables.html
InformationsquelleAutor Graham | 2010-05-05

1 Comentario

  1. 4

    Un StringVar no se unen con un Python nombre (lo que se llama una variable), pero con un Tkinter widget, como este:

    a_variable= Tkinter.StringVar()
    an_entry= Tkinter.Entry(textvariable=a_variable)

    A partir de entonces, cualquier cambio de a_variable a través de su .set método se reflejan en la an_entry contenido, y cualquier modificación de la an_entry contenido (por ejemplo, la interfaz de usuario) también la actualización de la a_variable contenido.

    Sin embargo, si eso no es lo que usted desea, usted puede tener dos (o más) las referencias a la misma StringVar en el código:

    var1= var2= Tkinter.StringVar()
    var1.set("some text")
    assert var1.get() == var2.get() # they'll always be equal

Dejar respuesta

Please enter your comment!
Please enter your name here