__deets__ hat geschrieben:Also ja, ein callback.
Um ehrlich zu sein, ist dieser Teil der einzige, den ich von deinem Rat verstanden habe. Aber nach vielem Ausprobieren hat es trotzdem ausgereicht, wofür ich mich bedanke. Meine jetzige (funktionierende) Version ist
Code: Alles auswählen
import tkinter as tk
fenster = t.Tk()
fenster.minsize(200,200)
#
chbvar = tk.IntVar(); chbvar.set(0)
chb = tk.Checkbutton(fenster,text="aktiv", variable=chbvar)
chb.grid()
#
lbl = tk.Label(fenster)
lbl.grid()
chbvar.trace('w',lambda *args:
lbl.config( text = "chbvar = {}".format(chbvar.get()) ))
Dennoch erhält tkinter von mir einen Preis für die schlechtest dokumentierte Software des Jahres. Bei einer Erklärung wie
trace = trace_variable(self, mode, callback)
Define a trace callback for the variable.
MODE is one of "r", "w", "u" for read, write, undefine.
CALLBACK must be a function which is called when
the variable is read, written or undefined.
Return the name of the callback.
verstehe ich (und wohl mancher tk-Unkundige) gerade einmal
bahnhof = haupt_bahnhof(self, lok, bahnhof)
Wie soll "trace_variable" verwendet werden? Was soll der Schwachsinn, ein Argument zu returnen, welches der Aufrufer sowieso kennt? Wenn ein IntVar nicht definiert wurde, wird eine Ausnahme ausgelöst, da hilft auch kein 'u' weiter. Und ist "trace_variable" dasselbe wie ein einfaches "trace"?