¿Hipervínculo en el widget de texto Tkinter?

Estoy diseñando una parte de mi proyecto de software actual y quiero usar hipervínculos en lugar de Buttons . Realmente no quería usar un widget de Text , pero eso es todo lo que pude encontrar cuando busqué en Google el tema. De todos modos, encontré un ejemplo de esto, pero sigo recibiendo este error:

 TclError: bitmap "blue" not defined 

Cuando agrego esta línea de código (usando el IDLE )

 hyperlink = tkHyperlinkManager.HyperlinkManager(text) 

El código para el módulo se encuentra aquí y el código para el script se encuentra aquí

¿Alguien tiene alguna idea?

La parte que da problemas dice foreground="blue" , que se conoce como color en Tkinter, ¿no es así?

Si no desea utilizar un widget de texto, no necesita hacerlo. Una alternativa es utilizar una etiqueta y vincular los clics del mouse a ella. Aunque es una etiqueta, todavía responde a los eventos.

Por ejemplo:

 import tkinter as tk class App: def __init__(self, root): self.root = root for text in ("link1", "link2", "link3"): link = tk.Label(text=text, foreground="#0000ff") link.bind("<1>", lambda event, text=text: self.click_link(event, text)) link.pack() def click_link(self, event, text): print("You clicked '%s'" % text) root = tk.Tk() app = App(root) root.mainloop() 

Si lo desea, puede obtener fantasía y agregar enlaces adicionales para los eventos y para que pueda modificar la apariencia cuando el usuario se desplace. Y, por supuesto, puede cambiar la fuente para que el texto quede subrayado si así lo desea.

Tk es un maravilloso conjunto de herramientas que le brinda los componentes básicos para hacer casi lo que quiera. Solo hay que mirar los widgets no como un conjunto de paredes y puertas prefabricadas, sino más bien como una stack de lumbares, ladrillos y mortero.

"blue" debería ser aceptable (ya que está en Windows, Tkinter debería usar su tabla de nombres de colores incorporada, podría ser una mala configuración del sistema en X11, pero no en Windows); por lo tanto, este es un problema desconcertante (¿quizás un error de configuración de Tkinter …?). ¿Qué sucede si utiliza foreground="#00F" lugar, por ejemplo? Esto no explica el problema, pero podría permitirle solucionarlo, al menos …