Tkinter Text小部件中的超链接?

Zac*_*own 9 python windows tkinter hyperlink

我正在设计我当前软件项目的一部分,并希望使用超链接而不是Buttons.我真的不想使用Text小部件,但是当我搜索主题时,这就是我能找到的.无论如何,我找到了一个这样的例子,但不断收到这个错误:

TclError: bitmap "blue" not defined
Run Code Online (Sandbox Code Playgroud)

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

hyperlink = tkHyperlinkManager.HyperlinkManager(text)
Run Code Online (Sandbox Code Playgroud)

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

有人有主意吗?

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

Bry*_*ley 13

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

例如:

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()
Run Code Online (Sandbox Code Playgroud)

如果您愿意,您可以获得幻想并添加其他绑定<Enter><Leave>事件,以便您可以在用户悬停时更改外观.当然,您可以更改字体,以便在您选择时为文本加下划线.

Tk是一个很棒的工具包,可以为您提供构建基础,以满足您的需求.您只需要将小部件视为一组预制的墙壁和门,而不仅仅是一堆腰部,砖块和砂浆.