如何拥有一个列出多个结果的屏幕,每个结果都是可点击的 link(在 Tkinter 上)

How to have a screen that lists multiple results, each of which is a clickable link (on Tkinter)

我是 GUI 的新手, 我做了一个基本的搜索引擎,可以找到包含特定单词的文档并将它们放入列表中。

现在,我希望这个路径列表显示在我的 GUI 上,一个在另一个下面(我猜是使用 \n),所有这些都可以点击并自动为您打开正确的文档,例如: os.startfile(path, 'open')

在当前版本中,我只显示一个结果(列表中的第一个),并且我是这样使用标签的:

my_label.config(text=path)
my_label.bind("<Button-1>", lambda e: os.startfile(path, 'open'))

我可以做更多的标签,但这样效率低下而且也不是动态的(例如我设想的会列出所有结果并且可以滚动)。

在此感谢任何帮助。

您可以使用一组 Labelbind 右键单击​​它,或者单个 Listbox 来显示您的路径和 bind

from tkinter import *
import os

root = Tk()

lst = [f'path {i}' for i in range(1,6)]

def select(e):
    path = e.widget.get(*e.widget.curselection())
    os.startfile(path,'open')

lstbox = Listbox(root)
lstbox.pack(padx=10,pady=10)

for i in lst:
    lstbox.insert('end',i)

lstbox.bind('<<ListboxSelect>>',select) # Or lstbox.bind('<Double-1>',select) for double click

root.mainloop()

lst 应该替换为您需要的列表。另一种可行的方法是设置 Buttonscommand 打开所需的路径。