Hi edst66,
um meinen Vorredner noch zu ergänzen, wie hast Du Dir denn vorgestellt, die Buttons zu "steuern"?
edst66 hat geschrieben:Code: Alles auswählen
def weiter(self):
if self.b1.state==NORMAL:
self.b2.state==NORMAL
self.b3.state==DISABLED
Vorausgesetzt Du folgst Schlangenbeschwörers Hinweisen bezüglich der Ressource 'state', dann bleibt beim ersten Aufruf dieser Methode b1 normal, b2 bleibt disabled (wenn Du ein '=' wegnimmst wird b2 auch normal), b3 ist und bleibt disabled. Und das war es dann auch, da kannst Du so oft auf weiter klicken, bis Dir der Finger abfällt.

Selbst wenn sich der Zustand von b1 (vielleicht durch ein kippendes Bit?) irgendwann mal ändert, wird damit nur der Ausdruck falsch, aber deswegen wird b2 nicht mehr disabled.
Ich empfehle Dir daher als Steuerwidget einen Checkbutton mit indicatoron=False, der zeigt den Zustand immer an und Du kannst ihn sogar über eine Kontrollvariable abfragen oder diese wiederum direkt einbauen. Das sieht dann so aus:
Code: Alles auswählen
import Tkinter as TK
wTk = TK.Tk()
# die Kontrollvariable speichert den Status
wControlVariable = TK.IntVar()
def print_state(wCV=wControlVariable):
print "status der Integerkontrollvariable:", wCV.get()
wControlButton = TK.Checkbutton(wTk, text="weiter", command=print_state, variable=wControlVariable, indicatoron=False)
wControlButton.pack()
# geht auch mit Strings
wControlVariableS = TK.StringVar()
wControlVariableS.set("normal")
def print_state(wCV=wControlVariableS):
print "status der Stringkontrollvariable:", wCV.get()
wControlButtonS = TK.Checkbutton(wTk, textvariable=wControlVariableS, command=print_state, variable=wControlVariableS,
indicatoron=False, offvalue="normal", onvalue="disabled")
wControlButtonS.pack()
wTk.mainloop()
Und dann wäre da noch etwas...
edst66 hat geschrieben:Code: Alles auswählen
self.weiter=Button(self.hf, text="WEITER",state=NORMAL,command=self.weiter)
self.weiter.pack()
def weiter(self):
Dieser Abschnitt erscheint mir verwirrend, denn Du definierst in der Klasse sowohl einen Button namens 'weiter', aber auch eine Methode namens 'weiter'. Na viel Spaß beim raten.
Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...