1

Tkinter を使用してボタンを無効にしようとしています:

from Tkinter import *
import os


class OptionWindow:




    def __init__(self, value):

        self.master = Tk() 
        self.master.minsize(500,500)
        self.b1 = Button(self.master, text = "save Game", command =self.saveGame, state = NORMAL).grid(row = 0, column = 1, sticky = W)

   def saveGame(self):       
        from modules.startingKit import options
        options.saved = True
        self.b1.configure (state = DISABLED)

しかし、なぜか「ゲームを保存」ボタンを押しても見た目が変わらないのです。無効にするにはどうすればよいですか?

4

1 に答える 1

4

おそらく、インターネット上に同じ間違いを犯すチュートリアルがいくつかあるため、あなたは非常によくある間違いを犯しています.

Python では、 を実行するx=foo().bar()と、xの結果が与えられbar()ます。あなたのコードでは、あなたがやっているself.b=Button(...).grid(...). したがって、self.bは の結果に設定されgrid(...)ます。grid(...)常に戻りますNone。そのため、実行することは、実行すると思っていることを実行しないこととself.b.configure(...)同じです。None.configure(...)

解決策は、ウィジェットの作成とウィジェットのレイアウトを別々の手順で行うことです。

self.b1 = Button(...)
self.b1.grid(...)
于 2013-03-28T20:26:32.010 に答える