Frage

Ich versuche, eine Variable mit einem Tkinter Eintrag Widget zu verknüpfen, in einer Weise, dass:

  1. Jedes Mal, wenn ich den Wert ändern (der „Inhalt“) des Eintrags, vor allem durch die Eingabe etwas hinein, die Variable wird automatisch den Wert zugewiesen, was ich eingegeben habe. Ohne mich auf eine Schaltfläche „Update Wert“ oder so ähnlich erst drücken.

  2. Jedes Mal, wenn die Variable (von einem anderen Teil des Programms) geändert wird, möchte ich den Eintrag Wert automatisch angezeigt werden eingestellt. Ich glaube, dass dies über die textvariable arbeiten könnten.

Ich lese das Beispiel auf http://effbot.org/tkinterbook/entry.htm, aber es ist nicht genau das hilft mir für das, was ich im Sinne habe. Ich habe das Gefühl, dass es ein Weg, um die erste Bedingung zu gewährleisten, mit dem unter Verwendung Eintrag „Validate“. Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich glaube, Sie so etwas wie dies wollen. Im Beispiel unten, habe ich eine Variable myvar und zugewiesen es textvariable sowohl eine Label und Entry Widgets zu sein. Auf diese Weise sind beide gekoppelt und Veränderungen im Entry wird Widget automatisch in Etikett widerspiegeln.

Sie können auch Set Spur auf Variablen, z.B. zu schreiben, um stdout.

from tkinter import *


root = Tk()
root.title("MyApp")

myvar = StringVar()

def mywarWritten(*args):
    print "mywarWritten",myvar.get()

myvar.trace("w", mywarWritten)

label = Label(root, textvariable=myvar)
label.pack()

text_entry = Entry(root, textvariable=myvar)
text_entry.pack()

root.mainloop()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top