Как создать гиперссылку с меткой в Tkinter?

Как вы создаете гиперссылка С помощью Label в Tkinter?

быстрый поиск не показал, как это сделать. Вместо этого были только решения для создания гиперссылки в Text виджет.

2 ответов


привязать метку "<Button-1>" событие. Когда он поднимается callback выполняется в результате открытия новой страницы в браузере по умолчанию.

from tkinter import *
import webbrowser

def callback(event):
    webbrowser.open_new(r"http://www.google.com")

root = Tk()
link = Label(root, text="Google Hyperlink", fg="blue", cursor="hand2")
link.pack()
link.bind("<Button-1>", callback)
root.mainloop()

вы также можете открыть файлы, изменив обратный вызов на:

webbrowser.open_new(r"file://c:\test\test.csv")

альтернативно, если у вас есть несколько меток и вы хотите одну функцию для всех. Это предполагает, что у вас есть ссылка в виде текста

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