Ich versuch mein Glück nochmal obwohl das vllt schon arg ausgereitzt wurde.
Code: Alles auswählen
checkboxen=[]
self.checkbox=[]
for row,(studie, serie, image) in enumerate(cursor, 1):
self.checkbox=(StringVar())
checkboxen.append(self.checkbox)
label_data = \
[
(row, 'lightblue'),
(datum_ausgabe, ''),
(image, ''),
(serie, ''),
(studie, ''),
]
serie_studie=('Serie: {} Studie: {}'.format(serie,studie))
for column, (text, background) in enumerate(label_data):
Label(self.ueberframe, text=text, relief='sunken', anchor=CENTER, background=background).grid(row=row, column=column, sticky=NSEW)
Checkbutton(self.ueberframe,text=serie_studie,variable=self.checkbox, onvalue=serie_studie, offvalue="",command=self.list_checkbox).grid(row=row, column=5,sticky=E)
Ich hab mir jetzt die Seiten hier im Thread mehrmals gelesen und bin auf gewisse Dinge gestoßen.
Der Code hier funktioniert ja soweit bis auf das Problem was schon ganz am Anfang beschrieben wurde und was jetzt wieder aufgetreten ist, sprich nur ein Checkbutton funktiniert richtig.
Jetzt zu dem was ich erlesen haben. Ihr schreibt das die StringVar in eine Liste übertragen/gespeichert werden müssen damit das Checkbuttons richtig funktionieren, wenn ich das richtig verstanden habe.
Meine Vermutung war ja das ich so:
checkboxen=[]
self.checkbox=StringVar()
checkboxen.append(self.checkbox)
das ganze in eine liste speichere. (Jetzt nur mal grob dargestellt der eigentliche code steht ja darüber)
Kommt das so ungefähr hin?
Meine frage dazu wäre aber wenn ich die StringVar in eine liste packe wie hier in diesem Fall funktioniert ja trotzdem nur der eine Checkbutton richtig. Daher denk ich dass das so nicht richtig funktioniert.
Der nächste Versuch den ich unternommen hatte war:
checkboxen.append(StringVar())
so würde ich die StringVar direkt in die Liste speichern statt wie oben beschrieben.
Das Problem was dabei aber aufkommt ist, das ich dann nicht mehr mit get() arbeiten kann da eine Listen-Objekt nie das Attribut "get" hat.
Da kommt mir natürlich in den Sinn wie ich dann auf die gespeicherten Dinge in der Liste zu greifen kann wenn das nicht mit "get" geht?
Ohne "get" sieht ja die ausgabe so aus: <tkinter.StringVar object at 0x2809310>
Ein anderer Hinweis von euch war "vergleiche den "on"-Wert der Checkbutton.
Meine Frage dazu wäre: Wie denn? In keinem Beispiel was ich gesucht und gefunden habe wurde der "on"-Wert verglichen.
Ein anderer Hinweis war das die "self.checkbox=StringVar()" überschrieben wird, da diese ja in der Schleife steht, spaßeshalber hatte ich Sie vor die Schleife gesetzt und schon ging ja das ganze mit der Wertübergabe aber dafür gingen die Checkbuttons nicht mehr richtig. Da immer nur einer Aktiv bleiben konnte. Bzw. deswegen sollte ich diese in eine Liste speichern aber da gabs ja wieder ein anderes Problem was ich schon beschrieben habe.
Im großen und ganzen kann ich jetzt sagen das alles mit der StringVar zusammenhängt, wo Sie steht und wie diese verwendet werden soll.
Zum Abschluss jetzt meine genaue Frage/Fragen:
Wie soll ich nun weiter verfahren?
Welcher Hinweis ist nun der für mich am geeignetsten oder sind alle Hinweise für mich relevant?
Danke
Edit: Was unterstrichen ist wurde hinzugefügt