[英]Can I assign and access variable inside Tkinter Listbox while for looping?
我已經編碼兩個月了。 我想使用tkinter
和Listbox
並在 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
的每一行一個數字值和后端對應的字母值/變量(0 到 A,1 到 B 等)。 在運行時,我想單擊一個數字,然后按下按鈕並打印字母。 我評論了我認為將插入字母值的行,但我無法想象一種方法。 我將如何 go 這樣做?
這很容易,首先定義你想要的列表中的所有字母,例如:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.