Radiobuttons mit gleichen Werten

Fragen zu Tkinter.
Antworten
lernePython
User
Beiträge: 18
Registriert: Freitag 3. Februar 2017, 20:01

Ich habe 5 Radiobuttons, die an dergleichen Variablen (tkinter.IntVar) hängen. Die Werte der einzelnen Items sind nicht alle unterschiedlich - so haben zwei Items den Wert 1, ein Item den Wert 2 und die letzten beiden Items den Wert 3. Wenn ich nun den ersten Radiobutton markiere wird automatisch auch der zweite Button markiert, ebenso bei den beiden letzten Radiobuttons :( - das ist aber nicht das erwünschte Verhalten. Markiert werden soll jeweils nur ein Button - unabhängig vom jeweiligen Wert.

Hat jemenad einen Tipp, wie ich das ändern kann?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@lernePython: gib den Radio-Buttons unterschiedliche Werte. Dann mußt Du an anderer Stelle die Logik Deines Programms anpassen.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Ich musste die bei mir mit einem String-Wert vorbelegen, den Tipp dafür hatte ich auch nur gefunden. Anschließend lasse ich die dann durch eine Schleife setzen, wo jeder Button aus einem Dictionary seinen eigenen Wert für value = wert erhält.

Code: Alles auswählen

self.sortierung = StringVar(value="1")
BlackJack

@Melewo: Das hat irgendwie nicht wirklich etwas mit der Frage zu tun. Und die '1' ist schräg, verwirrend, und unnötig.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Ich denke, ich hatte es von hier und so sehr weit ist das von der Fragestellung nicht entfernt.

https://stackoverflow.com/questions/406 ... -but-not-i
BlackJack

@Melewo: Naja, irgendwie schon. Das ist ein Problem mit `StringVar()`, die hat lernePython aber gar nicht. Wobei das wohl auch ein Bug in `tkinter` oder `Tk` ist, denn das Problem mit `StringVar()` kann laut Internet auch nicht jeder nachvollziehen. Die '1' bleibt auch immer noch erklärungswürdig. Und es löst das Problem von lernePython nicht.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Gut, hast Recht, bei mir war es nur mit StringVar und mit IntVar hatte ich noch keine Probleme. Wenn lernePython nun Radiobuttons mit gleichen int-Werten hat, dann würde mir der Gedanke kommen, diese an eindeutige Namen zu binden. Entweder über ein Dictionary "Einmaliger Name" : "Wert" und nur die Schlüssel für IntVar oder StringVar zu benutzen, die zugehörigen Werte können sich ja eher gleichen. Oder ich würde etwas benutzen wie 1a, 1b und das dann wieder einkürzen und in int wandeln. Oder eine Reihe von 1 bis 9 und eine zweite Reihe von 10 bis 90.
lernePython
User
Beiträge: 18
Registriert: Freitag 3. Februar 2017, 20:01

Sirius3 hat geschrieben:@lernePython: gib den Radio-Buttons unterschiedliche Werte. Dann mußt Du an anderer Stelle die Logik Deines Programms anpassen.
... so hatte ich es auch umgesetzt - fand es aber ziemlich hässlich, da ich aus den urspr. gesetzten intVAR jetzt stringVAR gemacht habe und in einer Prüfung die jeweiligen stringVar ("A1", "B1", "C1"....) die den Wert 1 repräsentieren, in ein int umwandeln muss, da ich mit den Values rechnen möchte.
Die Idee mit dem Dict werde ich mir nochmal ansehen.
Vielen Dank für Eure Antworten
Antworten