Python 如何从Tkinter列表框中提取变量以在脚本的其他地方使用?

Python 如何从Tkinter列表框中提取变量以在脚本的其他地方使用?,python,tkinter,listbox,tk,Python,Tkinter,Listbox,Tk,因此,我有一个python中的listbox Tkinter对象,它允许我选择多个项目,并打印出所选项目的索引。我想使用该索引来匹配脚本中的其他地方,比如,如果选择了项0,2,4,则运行这组代码或显示表中0,2,4的其他属性,并排除项1和3 这是我的剧本: Title = ["ABC","DEF","GHI","JKL","MNO"] def select_title(): print(

因此,我有一个python中的listbox Tkinter对象,它允许我选择多个项目,并打印出所选项目的索引。我想使用该索引来匹配脚本中的其他地方,比如,如果选择了项0,2,4,则运行这组代码或显示表中0,2,4的其他属性,并排除项1和3

这是我的剧本:

Title = ["ABC","DEF","GHI","JKL","MNO"]

def select_title():
    print(title_list.curselection())
    root.destroy()

root = Tk()
title_list = Listbox(root, width = 100, selectmode = MULTIPLE)
i = 0
while i < len(Title):
    title_list.insert(END, Title[i])
    i += 1
title_list.pack()

my_button = Button(root, text="Select", command=select_title)
my_button.pack()

root.mainloop()
我想把它们用于一个列表=[0,2,4],我可以在其他地方建立索引,这就是我很难弄明白的。我试着在那里放一个返回函数,但在处理这种格式的Tkinter对象时,它似乎不起作用。我非常感谢任何人能提供的任何见解。谢谢

更新: 如果我将代码调整为此,请参见下文,我仍然无法使用def之外的列表:

Title = ["ABC","DEF","GHI","JKL","MNO"]

def select_title():
    print(title_list.curselection())
    sel = title_list.curselection()
    lst = [_ for _ in sel]
    print(lst)
    root.destroy()

root = Tk()
title_list = Listbox(root, width = 100, selectmode = MULTIPLE)
i = 0
while i < len(Title):
    title_list.insert(END, Title[i])
    i += 1
title_list.pack()

my_button = Button(root, text="Select", command=select_title)
my_button.pack()

root.mainloop()
lst
在def外部尝试:

Title = ["ABC","DEF","GHI","JKL","MNO"]

def select_title():
    print(title_list.curselection())
    sel = title_list.curselection()
    lst = [_ for _ in sel]
    print(lst)
    root.destroy()

root = Tk()
title_list = Listbox(root, width = 100, selectmode = MULTIPLE)
i = 0
while i < len(Title):
    title_list.insert(END, Title[i])
    i += 1
title_list.pack()

my_button = Button(root, text="Select", command=select_title)
my_button.pack()

root.mainloop()
lst
输出:

(0, 2, 4)
[0, 2, 4]

感谢酷云的洞察力。这是至关重要的工作

以下是有效的脚本:

Title = ["ABC","DEF","GHI","JKL","MNO"]

def select_title():
    sel = title_list.curselection()
    global lst
    lst = [_ for _ in sel]
    root.destroy()

root = Tk()
title_list = Listbox(root, width = 100, selectmode = MULTIPLE)
i = 0
while i < len(Title):
    title_list.insert(END, Title[i])
    i += 1
title_list.pack()

my_button = Button(root, text="Select", command=select_title)
my_button.pack()

root.mainloop()

lst
Title=[“ABC”、“DEF”、“GHI”、“JKL”、“MNO”]
def select_title():
sel=title_list.curselection()
全球地表温度
lst=[[用于选择中的]
root.destroy()
root=Tk()
title\u list=Listbox(根,宽度=100,选择模式=MULTIPLE)
i=0
而我(头衔):
标题列表。插入(结束,标题[i])
i+=1
title_list.pack()
我的按钮=按钮(根,text=“选择”,命令=选择标题)
我的按钮包()
root.mainloop()
lst

给它分配一个变量,比如
sel=title\u list.curselection()
然后
lst=[\ufor\uuu-in-sel]
,现在
lst
是这些选择的索引。我尝试使用它的方式不起作用。我仍然无法使用def之外的列表。我希望能够做到这一点。因此,假设我在Jupyter笔记本中找到一个新的降价行并键入“lst”,我将得到“[0,2,4]的输出。请查看上面的更新。您必须在
选择标题()中说
全局lst
成功了!非常感谢!只需提示一下,您的
while
循环可以更改为
for
循环,就像Title:Title\u列表中的
for i。插入(END,i)