调用事件函数并使用.bind使我的画布矩形在光标滚动到其上后显示为灰色-Tkinter

调用事件函数并使用.bind使我的画布矩形在光标滚动到其上后显示为灰色-Tkinter,tkinter,Tkinter,我需要的矩形显示灰色后,光标已被滚动到它。但我不知道具体怎么做。我知道这与“回车”功能有关,可能会将颜色改为灰色 如果有人能在代码方面帮助我,那就太好了。我还假设,如果我想对一个新的级别重复这个过程,我会使用循环计数器吗?谢谢以下是我的画布代码: canvas = Canvas(PageOne, width=600, height=800) canvas.pack() # x1 y1 x2 y2 greenBox = ca

我需要的矩形显示灰色后,光标已被滚动到它。但我不知道具体怎么做。我知道这与“回车”功能有关,可能会将颜色改为灰色

如果有人能在代码方面帮助我,那就太好了。我还假设,如果我想对一个新的级别重复这个过程,我会使用循环计数器吗?谢谢以下是我的画布代码:

canvas = Canvas(PageOne, width=600, height=800)
canvas.pack()

#                                  x1  y1  x2  y2
greenBox = canvas.create_rectangle(40, 60, 90, 110, fill="green")
RedBox = canvas.create_rectangle(110, 60, 160, 110, fill="red")
BlueBox = canvas.create_rectangle(180, 60, 230, 110, fill="blue", activefill="grey")

在以下示例中,当鼠标光标第一次悬停在矩形上时,其颜色将变为灰色:

import tkinter as tk

def turngrey(e):
    canvas.itemconfig('current', fill='grey')

root = tk.Tk()
canvas = tk.Canvas(root, width=600, height=800)
canvas.pack()

greenBox = canvas.create_rectangle(40, 60, 90, 110, fill="green", tags=('turntogrey'))
RedBox = canvas.create_rectangle(110, 60, 160, 110, fill="red", tags=('turntogrey'))
BlueBox = canvas.create_rectangle(180, 60, 230, 110, fill="blue", tags=('turntogrey'))

canvas.tag_bind('turntogrey', '<Enter>', turngrey)

root.mainloop()
将tkinter作为tk导入
def turngrey(e):
canvas.itemconfig('current',fill='grey')
root=tk.tk()
canvas=tk.canvas(根,宽度=600,高度=800)
canvas.pack()
greenBox=canvas.create_矩形(40,60,90,110,fill=“green”,tags=('turntogrey'))
RedBox=canvas.create_矩形(110,60,160,110,fill=“red”,tags=('turntogrey'))
蓝盒=画布。创建一个矩形(180、60、230、110,fill=“blue”,tags=('turntogrey'))
canvas.tag_bind('turntogrey','',turngrey)
root.mainloop()