【发布时间】:2019-11-24 10:59:32
【问题描述】:
我正在尝试使用 tkinter 制作地图程序,但在创建图标时遇到问题,这些图标在单击或鼠标经过它们时会显示信息。
root = Tk()
root.title('test')
root.geometry("500x500")
def text_map_icon(canvas, origin_x, origin_y, text):
canvas.create_text(origin_x, origin_y - 60, text=text)
def map_icon(canvas, origin_x, origin_y, text):
icon = canvas.create_arc((origin_x - 50), (origin_x - 50), (origin_y + 50), (origin_y + 50), start=70, extent=40,
fill='green', activefill='red', activewidth=2.0)
canvas.tag_bind(icon, '<Enter>', text_map_icon(c, origin_x, origin_y, text))
map_icon(c, 250, 250, 'map icon')
c.pack()
root.mainloop()
为此,我使用 create_arc 画布方法创建了一个地图图标。为了在单击图标时显示信息,我尝试将其绑定到 text_map_icon 函数。为了使该文本在地图上显示相关信息(可能会根据提供给它的数据而变化),我需要该函数具有文本和坐标的参数。
我知道通常在绑定函数时,函数的参数是“事件”,而在调用时没有给出任何参数。有没有办法用参数绑定函数?
【问题讨论】:
标签: events tkinter bind tkinter-canvas