You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的Tkinter Canvas中添加可点击文本超链接?

修复Tkinter Canvas可点击文本链接的问题

你的代码无法正常工作的核心原因是:Canvas的create_text返回的是文本项的ID,不是Tkinter组件对象,不能直接调用bind方法。需要使用Canvas的tag_bind方法来为文本项绑定事件。

以下是修正后的完整代码:

from tkinter import *
import webbrowser

def callback(url):
    webbrowser.open_new(url)

home = Tk()
home.title("OneLink")

c = Canvas(home, width="700", height="500")
c.pack()

home_text = c.create_text(350, 50, text="Welcome to a Python Program That Only Gives One Link!", fill="black", font=("Helvetica 10"))

# 创建文本时指定标签,也可直接用返回的item ID
main_website_link = c.create_text(350, 100, text="Google", fg="blue", cursor="hand2", tags="google_link")
# 使用Canvas的tag_bind绑定点击事件
c.tag_bind("google_link", "<Button-1>", lambda e: callback("http://google.com.au"))

home.mainloop()

关键改动说明:

  • 给create_text添加tags="google_link"参数,为文本项标记标签(也可以直接用返回的main_website_link这个item ID替代标签名)
  • 调用Canvas对象的tag_bind方法,而非文本项ID的bind方法,来绑定<Button-1>点击事件
  • 补充home.mainloop(),确保窗口能正常启动运行

内容的提问来源于stack exchange,提问作者AngusAU293

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:42:08