Tkinter Entry の get 関数は何も生成しません: 包括的な説明
get() を使用して Tkinter Entry ウィジェットからユーザー入力を取得しようとしたとき関数を実行すると、空の戻り値が返される場合があります。この一見複雑な問題は、Tkinter の非同期の性質と関数の実行順序に起因しています。
提供されたコード スニペットでは、エントリの作成直後にその値を取得しようとしています。ただし、Tkinter は、mainloop() 関数が呼び出された後に GUI イベントが処理される「イベント ループ」モデルに従います。これは、mainloop() の前に get() 関数が呼び出された場合、ユーザー入力がまだ入力されていないため、空の戻り値が返されることを意味します。
この問題を解決するには、get() を呼び出すことが 1 つの方法です。ボタンのクリックなどのイベントに関連付けられた別の関数内で。このようなクラスベースのアプローチの例は次のとおりです。
import tkinter as tk
class SampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self)
self.button = tk.Button(self, text="Get", command=self.on_button)
self.button.pack()
self.entry.pack()
def on_button(self):
print(self.entry.get())
app = SampleApp()
app.mainloop()
この例では、ボタンのクリック イベントに関連付けられた on_button 関数内で get() 関数が呼び出されます。ボタンをクリックすると、エントリの値が取得されて出力されるため、ユーザー入力を効果的に操作できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3