我可以在循环时分配和访问 Tkinter 列表框中的变量吗?

Can I assign and access variable inside Tkinter Listbox while for looping?

我已经编码两个月了。我想使用 tkinterListbox 并访问变量“附加”到 for 循环中的特定循环。

到目前为止,这是我的代码:

from tkinter import *
root = Tk()

listbox = Listbox(root)
listbox.pack()

number = 10
for i in range(number):
    listbox.insert(END, i)
    # here letter A, B, C, etc.?

def get_letter():
    print(listbox.get(listbox.curselection()))

btn = Button(root, text="Show letter from row", command=lambda: get_letter())
btn.pack()

mainloop()

在这个程序中,我想给(并显示)listbox 中的每一行一个数字值和后端对应的字母 value/variable(0 到 A,1 到 B,等等。 ).在运行时我想点击一个数字,然后按下按钮并打印字母。我评论了我认为将插入字母值的行,但我无法想象一种方法。我该怎么做?

这很简单,首先定义一个列表中你想要的所有字母,例如:

lst = ['A','D','B',....]

对于这个例子,我将使用每个字母表,但循环将限制为 number 你设置的:

import string #only to get list of all alphabets

.... #same codes

number = 10 #number of alphabets you want to add
alpha = list(string.ascii_uppercase) #making a list of all alphabets 
for i in range(number):
    listbox.insert(END, alpha[i]) #indexing the list based on the iterated number

...#same codes

当你 select 他们也一样时,这将为你提供字母表。

只是为了进一步改进: 你可以添加一行绑定,当你双击所需的项目时,它会获取值,比如:

listbox.bind('<Double-Button-1>',lambda event=None:get_letter())

请注意,您要求更改答案,这样您将获得字母表的索引号:

def get_letter():
    print((listbox.curselection()[0]))  #indexing from the tuple