2013-04-16 3 views
17

何らかのイベントが発生したときにからNORMALの状態をButtonに変更する必要があります。ここでTkinter Buttonの状態を無効から通常に変更するには?

は現在無効になっている私のボタンの現在の状態です。

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 

はそれを行う方法で私を助けてanyonneことはできますか?

答えて

34

は、単にあなたのボタンself.xnormalへのstateを設定する必要があります。

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

または

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

にボタンの原因となりますイベントのコールバックで行くだろう。このコード有効にする。

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

方法packButton(...).pack()で戻りNone、あなたはself.xに代入されます。


また、右のコードがなければなりません。実際にはButton(...)の戻り値をself.xに割り当て、次の行にself.x.pack()を使用します。

+0

このコードはボタンが有効にされるようになりますイベントのコールバックに行くだろうと加えられるべきです。 –

+0

私はエラーを受け取りました: self.x ['state'] = 'enabled' : 'NoneType'オブジェクトはアイテムの割り当てをサポートしていません – scandalous

+0

あなたは一部の機能を悪用します。 – Sheng

6

ウィジェットのオプションを変更する簡単な方法は、configureメソッドを使用することです。あなたのケースでは

、それは次のようになります。

self.x.configure(state=NORMAL) 
関連する問題