3

ホバーした後にウィジェットの背景色と前景色を変更するスクリプトを作成しようとしています。

from Tkinter import *

root=Tk()

Hover1=Button(root,text="Red color", bg="white")
Hover1.pack()

Hover2=Button(root,text="Yellow color", bg="white")
Hover2.pack()

Hover1.bind("<Enter>",Hover1.configure(bg="red"))
Hover1.bind("<Leave>",Hover1.configure(bg="white"))

Hover2.bind("<Enter>",Hover2.configure(bg="yellow"))
Hover2.bind("<Leave>",Hover2.configure(bg="white"))

root.mainloop()

しかし、ボタンにカーソルを合わせると、何も起こらず、白のままです。関数を使用できることはわかっていますが、ウィジェットごとに2つの関数があります(1は、、1は)。単一の関数を作成したいと思います。この関数は、カーソルを合わせたウィジェットの色を変更し、このスクリプトが目的の機能を実行しない理由を説明します。

私は自分の問題をうまく説明できたと思います。すべての答えをありがとう。

PS:クラスは避けたいです。

mountDoom

4

1 に答える 1

4

イベントにバインドするには、呼び出し可能な関数を提供する必要があります。代わりに、関数を呼び出してその結果を渡します。次のように修正します。

Hover1.bind("<Enter>", lambda event, h=Hover1: h.configure(bg="red"))
于 2013-01-10T18:39:13.770 に答える