kontrollvariable im menu verwenden klappt nicht so richtig

Fragen zu Tkinter.
Antworten
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

hallo!

ich möchte sowas wie ein 'zeichenprogramm' machen.
man soll also auch die strichdicke und -farbe einstellen können. dazu habe ich mir gedacht, ich mache ein menu und dort ein paar radiobuttons, die für die strichdicke 'zuständig' sind. alles schön und gut, ich kann da ja auch was auswählen, aber wenn ich dann zeichnen will, kommt ne fehlermeldung (TclError: bad screen distance "PY_VAR0")

hier mal das wichtigste:

Code: Alles auswählen

self.polygon = self.leinwand.create_polygon(self.punkte,fill="",outline="green", width=self.strichdicke)
...
self.strichdicke = IntVar()
self.strichdicke.set(1)
...
self.fenster.menuleiste.menu2.sd.add_radiobutton(label="1", variable=self.strichdicke, value=1)
self.fenster.menuleiste.menu2.sd.add_radiobutton(label="2", variable=self.strichdicke, value=2)
nicht meckern, falls ich irgenwas grundsätzliches falsch gemacht habe, bin noch ein ziemlicher anfänger beim programmieren ...
schonmal thx im voraus!
mind like a sieve
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

also statt

Code: Alles auswählen

self.strichdicke = IntVar()
einfach

Code: Alles auswählen

self.strichdicke = Tkinter.Variable()
wenn ich das jetzt richtig verstanden habe?
mind like a sieve
BlackJack

Nein hast Du nicht richtig verstanden. Nächster Versuch. :P
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

ah, jetzt hab ichs aber: ich muss statt

Code: Alles auswählen

self.polygon = self.leinwand.create_polygon(self.punkte,fill="",outline="green", width=self.strichdicke)
schreiben:

Code: Alles auswählen

x = self.strichdicke.get()
self.polygon = self.leinwand.create_polygon(self.punkte,fill="",outline="green", width=x)
mind like a sieve
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

OK, das war richtig, man kann also eine kontrollvariable nicht ohne dieses 'kontrollvariable.get()' verwenden
dann wäre ja alles geklärt, danke für die hilfe ;)
mind like a sieve
Antworten