refreshButton = Button(frameList, text ="Refresh",command = print("pressed"))
refreshButton.place(x=50, y=50)
ボタンが押されるたびにこのコードが「押されて」印刷されないのはなぜですか?Python Tkinterボタン
エラーメッセージはありません。問題はprint( "pressed")が実行されないということです。
refreshButton = Button(frameList, text ="Refresh",command = print("pressed"))
refreshButton.place(x=50, y=50)
ボタンが押されるたびにこのコードが「押されて」印刷されないのはなぜですか?Python Tkinterボタン
エラーメッセージはありません。問題はprint( "pressed")が実行されないということです。
ボタンコマンドは、lambda
またはその他の機能を使用しない限り、パラメータを指定できません。代わりに、ボタンを押したときに呼び出す独自の関数を作成する必要があります。
def Refresh(*args):
print("pressed")
# do stuff
refreshButton = Button(frameList, text ="Refresh",command = Refresh)
refreshButton.place(x=50, y=50)
あなたがしたいのはprint("pressed")
なので、これが別の解決策です。 lambda
は、ボタンによって与えられたすべてのパラメータをキャッチし、あなた自身のパラメータを持つ関数を呼び出してみましょう:)
refreshButton = Button(frameList, text ="Refresh",command= lambda *args: print("pressed"))
使用lambda
ます:
refreshButton = Button(frameList,
text ="Refresh",
command = lambda: print("pressed")
)
私は、後に別のオブジェクトからの関数を呼び出したいです。 print( "pressed")は、ボタンをテストするための単なる一時的なものでした。 – Peanutpower
他の2つの答えと同じあなた自身の答えをなぜ追加したのか分かりませんが...。 –
_ "...ラムダを使用しない限り" _は完全に真ではありません。 'lambda'以外の引数を渡す方法は他にもあります。 –