如何在Tkinter中创建带有Label的超链接?

Jam*_*rke 15 python label tkinter hyperlink

如何使用in Tkinter 创建超链接Label

快速搜索没有透露如何做到这一点.相反,只有在Text小部件中创建超链接的解决方案.

Jam*_*rke 26

将标签绑定到"<Button-1>"事件.当它被引发时,callback执行会导致默认浏览器中的新页面打开.

from tkinter import *
import webbrowser

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

root = Tk()
link1 = Label(root, text="Google Hyperlink", fg="blue", cursor="hand2")
link1.pack()
link1.bind("<Button-1>", lambda e: callback("http://www.google.com"))

link2 = Label(root, text="Ecosia Hyperlink", fg="blue", cursor="hand2")
link2.pack()
link2.bind("<Button-1>", lambda e: callback("http://www.ecosia.org"))

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

您还可以通过将回调更改为:打开文件:

webbrowser.open_new(r"file://c:\test\test.csv")
Run Code Online (Sandbox Code Playgroud)

  • 它使字符串文字.所以你不必逃避反斜杠. (2认同)

Ste*_*ers 8

或者,如果您有多个标签并且想要一个功能.假设您将链接作为文本

import tkinter as tk
import webbrowser

def callback(event):
    webbrowser.open_new(event.widget.cget("text"))

root = tk.Tk()
lbl = tk.Label(root, text=r"http://www.google.com", fg="blue", cursor="hand2")
lbl.pack()
lbl.bind("<Button-1>", callback)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)