ホームページ >バックエンド開発 >Python チュートリアル >Tkinter ウィジェットを None として保存すると、「NoneType」オブジェクトに「Configure」属性がなくなるのはなぜですか?
グラフィカル ユーザー インターフェイスを作成するための人気のある Python ライブラリである Tkinter には、ウィジェットが None として保存されるという共通の問題があります。価値観。この問題は、ウィジェット メソッドを呼び出そうとしたときに発生する可能性があり、「NoneType' オブジェクトには属性 'configure' がありません。」などのエラーが発生します。
この問題の理由の 1 つは、Tkinter の Grid、Pack、および Place メソッドの方法にあります。操作する。これらのメソッドはインプレースであり、None を返します。つまり、ウィジェットの作成と同じ行でウィジェットを呼び出すことはできません。代わりに、ウィジェットを作成してから、次の行でインプレース メソッドを呼び出す必要があります。
たとえば、提供されたコード スニペットでは、
def genABC(): for r in range(3): for c in range(10): if (c+(r*10)>25): break print(c+(r*10)) b[c+(r*10)] = Button(f, text=chr(97+c+(r*10)), command=lambda a=c+(r*10): color(a), borderwidth=1,width=5,bg="white").grid(row=r,column=c)
グリッド メソッドが直接呼び出されます。ボタン ウィジェットの作成後にエラーが発生します。これを解決するには、コードを次のように再構成する必要があります。
def genABC(): for r in range(3): for c in range(10): if (c+(r*10)>25): break print(c+(r*10)) b[c+(r*10)] = Button(f, text=chr(97+c+(r*10)), command=lambda a=c+(r*10): color(a), borderwidth=1,width=5,bg="white") b[c+(r*10)].grid(row=r,column=c)
ウィジェットの作成とインプレース メソッド呼び出しを分離することで、ウィジェットが正しく構成され、将来の対話のためにアクセスできるようになります。この調整により、Tkinter ウィジェットを Python アプリケーション内で効果的に保存して利用できるようになります。
以上がTkinter ウィジェットを None として保存すると、「NoneType」オブジェクトに「Configure」属性がなくなるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。