python - 如何从 Tkinter 列表框中提取变量以在脚本的其他地方使用?
问题描述
所以我在 python 中有一个列表框 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()
如果我选择“ABC”、“GHI”和“MNO”(索引为 0、2、4)并按下选择按钮,我会打印出以下输出:
(0, 2, 4)
我想将这些用于 list = [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()
输出:
(0, 2, 4)
[0, 2, 4]
在 def 之外尝试:
lst
输出:
解决方案
感谢酷云的洞察。让它发挥作用至关重要。
以下是有效的脚本:
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
推荐阅读
- javascript - 在下拉菜单的 Span 中显示验证错误
- css - 定位伪元素(之后)上的 z-index 不起作用
- javascript - 每个带有 IntersectionObserver 的新动画元素都会出现不必要的延迟
- python-3.x - 根据多列设置自第一次出现以来的天数
- python - 如何根据二维数组的两个条件更改数组值?
- javascript - 使用 Javascript 和 PHP 加载第一页/单页时客户端的 UTC 偏移量
- python - Python 多处理错误“ForkAwareLocal”对象没有属性“连接”
- javascript - 使用 Cheerio 的 Nodejs Webscraping 函数在完成之前返回
- regex - 如何通过正则表达式从Ruby中的字符串中提取年份
- jquery - 如何使用jquery用动态元素替换标签