Wie kann ich in Python (Tkinter) vers. Buttons eine Varaible ändern lassen?

1 Antwort

Radio Buttons sind nur als Gruppe sinnvoll. Dein einsames Exemplar würde Material="2" setzen, wenn er angeklickt wird.

Allerdings definierst Du Material als IntVar() und setzt sie auf 1. Der Button wird also erst mal nicht aktiv sein.

Die Ausgabe PY_VAR0 weckt in mir folgende Vermutungen:

  • Du hast den Button gar nicht angeklickt
  • die Zuweisung des Strings "2" erzeugt einen Fehler
  • IntVar.__str__() gibt nur den Namen der Variable aus. Für ihren Wert brauchst Du etwas wie Material.getValue()

Alsoooo: 1. Da sollen noch ein paar Buttons hinzu kommen, allerdings wollte ich zur verdeutlichung nur ein Teil des Skriptes posten...

2. Ich habe den Button definitiv angeklickt;D

zu dem Rest kann ich leider nichts sagen, da ich nicht genau weiß, was Du meinst...;(

Sorry...

Aber trotzdem danke!!

1
@JonaslL653

Ich hab' kurz nachgeschaut:

* Ich empfehle die Schreibweise Radiobutton(..., value=2) ohne Anführungszeichen. Auch wenn's mit einem String "2" klappt, ist das unnötig und verwirrt nur. Sollte value="1+1" oder value="zwei" deiner Meinung nach auch funktionieren?

* Eine IntVar hat einen Wert und einen Namen. Letzteren kannst Du im Konstruktor angeben: Material=IntVar(name="Jonas"). Keine Ahnung, wozu der gut ist. Wenn kein Name angegeben wird, heißt sie "PY_VAR0", die nächste dann "PY_VAR1" usw.

* print() behandelt nur Strings. Gibst Du ein Objekt an, wird das in einen String umgewandelt. Bei IntVar läuft das auf den Namen der Variablen hinaus (so wurde es eben programmiert).

Also: print( Material ) ⇒ "PY_VAR0" (oder eben "Jonas")
         print( Material.get() ) ⇒ "2"

Alles klar?

1