2014-02-10 14 views
7

Ich möchte ttk.Button den Zustand nach einer internen Logik ändern. Ich eine Schaltfläche erstellen und einen Stil mit ihm assoziieren:Python: ttk: Deaktivieren/Aktivieren einer Schaltfläche

cardBtnStyle = ttk.Style() 
cardBtnStyle.configure('CB.TButton') 
cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', command = cardCreateCallBack).grid(column=1, row=5) 

folgenden Anweisung hat keine Auswirkung:

style.configure('CB.TButton', state='disabled') 

Aber wenn ich einen Knopf wie diese zu erstellen, es ist deaktiviert:

cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', state='disabled', command = cardCreateCallBack).grid(column=1, row=5) 

Wie ändere ich den ttk.Button-Status in Python?

OS: Ubuntu 13.10

Python: 2.7.5+

Antwort

9

Die Schaltfläche Zustand ist nicht Teil seines Stils. Sie können die state()-Methode verwenden, um es zu ändern:

cardBtn.state(["disabled"]) # Disable the button. 
cardBtn.state(["!disabled"]) # Enable the button. 
+0

erhalte ich folgende Fehlermeldung: Exception in Tkinter Rückruf Traceback (jüngste Aufforderung zuletzt): File „/usr/lib/python2.7/lib-tk/ Tkinter.py ", Zeile 1473, in __call__ return self.func (* args) Datei" /usr/lib/python2.7/lib-tk/Tkinter.py ", Zeile 534, in callit func (* args) Datei "./viaVPN-Production.py", Zeile 42, in state_thread cardBtn.state (["deaktiviert"]) AttributeError: 'NoneType' Objekt hat kein Attribut 'state' – yegorich

+1

@yegorich, diese Fehlermeldung bedeutet das 'cardBtn' ist auf "Keine" eingestellt. Der Code in Ihrer Frage weist ihm jedoch eine Instanz von "ttk.Button" zu, daher sollte dies nicht der Fall sein. Überprüfen Sie, ob Sie 'state()' nach dem Initialisieren der Schaltflächeninstanz aufrufen. –

+2

Ich glaube, ich habe das Problem gefunden: Sie können kein Objekt erstellen, wenn Sie es sofort platzieren ('.grid()' oder '.pack()'). Dies muss in zwei Schritten geschehen: Erstellen Sie ein Objekt und platzieren Sie es anschließend. Auf diese Weise können Sie den Griff verwenden. – yegorich

Verwandte Themen