Tkinter文本小部件中的超链接?

我正在重新devise我当前的软件项目的一部分,并且想要使用超链接而不是Buttons 。 我真的不想使用Text小部件,但是当我search这个主题的时候,这是我所能find的。 无论如何,我find了一个这样的例子,但不断得到这个错误:

 TclError: bitmap "blue" not defined 

当我添加这行代码(使用IDLE

 hyperlink = tkHyperlinkManager.HyperlinkManager(text) 

模块的代码位于此处 ,脚本的代码位于此处

有人有主意吗?

给出问题的部分是foreground="blue" ,这在Tkinter中被称为颜色,不是吗?

如果你不想使用文本小部件,你不需要。 另一种方法是使用标签并将鼠标点击到它上面。 即使它是一个标签,它仍然响应事件。

例如:

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

如果你愿意,你可以看中它,为<Enter><Leave>事件添加额外的绑定,以便在用户悬停时改变外观。 而且,当然,如果您愿意,可以更改字体,以便文本带下划线。

Tk是一个非常棒的工具包,可以让你随心所欲地完成任务。 你只需要看看这些小工具,而不是一套预制的墙壁和门,而更像是一堆腰,砖和灰泥。

"blue"应该是可以接受的(因为你在Windows上,Tkinter应该使用它的内置颜色名称表 – 这可能是在X11系统配置错误,但不是在Windows上); 因此,这是一个令人困惑的问题(也许一个Tkinter错误配置…?)。 例如,如果使用foreground="#00F" ,会发生什么? 这不能解释这个问题,但可以让你解决它,至少…