Seite 1 von 1

Variable aus Checkbutton übergeben

Verfasst: Donnerstag 30. August 2007, 12:09
von The Spirit
HI.
Hab ne Funktion, die meinen Ornder nach allen dateien mit einer bestimmten Dateiendung durchsucht und mir dann anschließend für jede gefundene Datei eine Checkbutton macht mit dem Pfad inkl. Dateinamen als Text des Checkbuttons.
Jetzt bekomm ich es aber leider nicht hin, das wenn ich den Checkbutton markiere, also ein Häckchen setze, (checkbutton sind mit indicatoron=1 versehen), das er den text des checkbuttons als variable zurückgibt.
Jemand nen Tipp?
Thx

Verfasst: Donnerstag 30. August 2007, 14:05
von schlangenbeschwörer
Du erhälst ja auch den "onvalue"-Wert, und nicht den Text. Erzeuge die Checkbuttons in etwa so:

Code: Alles auswählen

#...
pathname = "C:/deinpath/mit/unterverzeichnissen/und/datei.xy"
c = tk.Checkbutton(text=pathname, onvalue=pathname, indicatoron = ...)
#...

Verfasst: Donnerstag 30. August 2007, 14:49
von The Spirit
muss ich den onvalue dann mit

Code: Alles auswählen

onvalue.get() 
oder mit

Code: Alles auswählen

variable.get()
holen?
aber da es ein string ist, dürfte es mit

Code: Alles auswählen

.get() 
ja nicht gehen, oder?


edit:

desweiteren rufe ich das ganze in einer funktion auf. wie bekomme ich dann den wert aus der funktion "raus" (falls ich mal das onvalue bekomme ;o).
das ganze wird über einen button gestartet und daher auch der funktionsaufruf

Verfasst: Donnerstag 30. August 2007, 16:41
von schlangenbeschwörer
Es wäre unglaublich hilfreich, wenn du mal deinen Code posten würdest!
Hier mal ein Bsp.: (vermutlich das schlechteste was geht :lol: )

Code: Alles auswählen

import Tkinter as tk

def makeCBs():
    varlist = []
    for i in xrange(10):
        var = tk.StringVar()
        varlist.append(var)
        path = r"C:\example\spam\eggs\bacon\%i.xy"%i
        tk.Checkbutton(text=path, onvalue=path, variable = var).pack()
    return varlist

def ausgabe(varlist):
    for var in varlist:
        if var.get().replace("0", "") :
            print var.get()
    print
            
tk.Tk()
varlist = makeCBs()
tk.Button(text = "ausgabe", command = lambda: ausgabe(varlist)).pack()
tk.mainloop()