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



我需要在光标滚动到矩形上后使其显示为灰色。但我不确定具体如何做到这一点。我知道这与"输入"功能有关,也许还可以将颜色改为灰色。

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

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()

最新更新