如何在屏幕上列出多个结果,每个结果都是一个可点击的链接(在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应该替换为您需要的列表。另一种可行的方法是用command设置Buttons,打开所需的路径。

最新更新