Как создать гиперссылку с меткой в Tkinter? Как создать гиперссылку с помощью Label в Tkinter? Быстрый поиск не показал, как это сделать. Вместо этого существовали только решения для создания гиперссылки в виджете Text. Ответ 1 Привязать метку к событию "<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() Вы также можете открыть файлы, изменив функцию обратного вызова на: webbrowser.open_new(r"file://c:\test\test.csv") Ответ 2 Альтернативно, если у вас есть несколько меток и нужна одна функция для всех. Это предполагает, что у вас есть ссылка в виде текста 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() Ответ 3 from tkinter import * import webbrowser def hello(link): webbrowser.open_new(link) app = Tk() app.title('Hyperlink Process') label1 = Button(app, text = 'See a video',command = lambda : hello("https://examscuriosity.com")) label1.pack() app.mainloop()
Ответ 1 Привязать метку к событию "<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() Вы также можете открыть файлы, изменив функцию обратного вызова на: webbrowser.open_new(r"file://c:\test\test.csv")
Ответ 2 Альтернативно, если у вас есть несколько меток и нужна одна функция для всех. Это предполагает, что у вас есть ссылка в виде текста 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()
Ответ 3 from tkinter import * import webbrowser def hello(link): webbrowser.open_new(link) app = Tk() app.title('Hyperlink Process') label1 = Button(app, text = 'See a video',command = lambda : hello("https://examscuriosity.com")) label1.pack() app.mainloop()