Search code examples
pythonhyperlinktkinterlabel

How to create a hyperlink with a Label in Tkinter?


How do you create a hyperlink using a Label in Tkinter?

A quick search did not reveal how to do this. Instead there were only solutions to create a hyperlink in a Text widget.


Solution

  • Bind the label to "<Button-1>" event. When it is raised the callback is executed resulting in a new page opening in your default browser.

    from tkinter import *
    import webbrowser
    
    def callback(url):
        webbrowser.open_new(url)
    
    root = Tk()
    link1 = Label(root, text="Hyperlink", fg="blue", cursor="hand2")
    link1.pack()
    link1.bind("<Button-1>", lambda e: callback("http://www.example.com"))
    
    link2 = Label(root, text="Hyperlink", fg="blue", cursor="hand2")
    link2.pack()
    link2.bind("<Button-1>", lambda e: callback("http://www.example.org"))
    
    root.mainloop()
    

    You can also open files by changing the callback to:

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