簡體   English   中英

我可以在循環時分配和訪問 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的每一行一個數字值和后端對應的字母值/變量(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM