2013-04-16 6 views
17

Devo cambiare lo stato da DISABLED a NORMAL di uno Button quando si verifica un evento.Come cambiare lo stato del pulsante Tkinter da disabilitato a normale?

Ecco lo stato attuale della mia Button, che è attualmente disabilitata:

self.x = Button(self.dialog, text="Download", 
       state=DISABLED, command=self.download).pack(side=LEFT) 

self.x(state=NORMAL) # this does not seem to work 

Può anyonne aiutarmi su come farlo?

risposta

34

è sufficiente per impostare il state del vostro tasto self.x-normal:

self.x['state'] = 'normal' 

o

self.x.config(state="normal") 

Questo codice sarebbe andato nel callback per l'evento che farà sì che il pulsante per essere abilitato.


Inoltre, il codice giusto dovrebbe essere:

self.x = Button(self.dialog, text="Download", state=DISABLED, command=self.download) 
self.x.pack(side=LEFT) 

Il metodo pack in Button(...).pack() rendimenti None, e si sta assegnandolo a self.x. In realtà si desidera assegnare il valore restituito da Button(...) a self.x e quindi, nella riga seguente, utilizzare self.x.pack().

+0

Va aggiunto che questo codice sarebbe andato nel callback per l'evento che causerà il pulsante per essere attivata. –

+0

Ho provato l'errore: self.x ['stato'] = 'abilitato' : L'oggetto 'NoneType' non supporta l'assegnazione dell'oggetto – scandalous

+0

L'uso improprio di alcune funzioni. Vedere il mio aggiornamento. – Sheng

6

Penso che un modo rapido per modificare le opzioni di un widget sia l'utilizzo del metodo configure.

Nel tuo caso, sarebbe simile a questa:

self.x.configure(state=NORMAL) 
Problemi correlati