15

私はPythonプログラミングの初心者で、まだラムダの使用法を理解しようとしています. 多くのグーグル検索の後、いくつかのGUIプログラムに取り組んでいました。必要に応じて、ボタンが機能するためにこれを使用する必要があると考えました

これは機能します

mtrf = Button(root, text = "OFF",state=DISABLED,command = lambda:b_clicked("mtrf"))

しかし、スケールに対して同じことをしても機能しません

leds = Scale(root,from_=0,to=255, orient=HORIZONTAL,state=DISABLED,variable =num,command =lambda:scale_changed('LED'))
4

3 に答える 3

38

Scale1 つの引数として渡された関数を呼び出すcommandため、それを使用する必要があります (ただし、すぐに破棄します)。

変化する:

command=lambda: scale_changed('LED')

command=lambda x: scale_changed('LED')
于 2013-04-25T12:41:54.557 に答える
5

これはおそらく、コマンドに不要な引数が渡されたためです。からラムダを変更してみてください

command=lambda:scale_changed('LED')

command=lambda x:scale_changed('LED')
于 2013-04-25T12:42:33.177 に答える
2

Tkinterのドキュメントを参照してください。

スケール ウィジェット

command・スライダーを動かすたびに呼ばれる手続き。このプロシージャには、1 つの引数 (新しいスケール値) が渡されます。スライダーが急速に動かされた場合、考えられるすべての位置でコールバックを取得できない場合がありますが、安定したときに確実にコールバックを取得します。


ボタンウィジェット

command- ボタンがクリックされたときに呼び出される関数またはメソッド。

に変更lambdaします

command=lambda new_scale_val: scale_changed('LED')
于 2013-04-25T12:49:38.733 に答える