Listbox listvariable.get() 返回元组,但处理方式与字符串类似?



在类中工作,我试图在列表框中获取所选项目,但是当我应用选择索引时,元组似乎变成了字符串。

def __init__(self, parent):
# <---snip--->
self.part_no = tk.StringVar()
self.part_listbox = tk.Listbox(self, listvariable=self.part_no, selectmode='multiple')
# <---snip--->
def load_part(self):
part_list = self.part_no.get() # tuple of strings
selection = self.part_listbox.curselection() # tuple of integers
load_list = [part_list[item] for item in selection] # list of characters???
print(part_list, selection, load_list)

选择前三个值(并使用 load_part 命令按下按钮(给我输出:

('101', '201', '301', '401', '501') (0, 1, 2) ['(', "'", '1']

我期望:

('101', '201', '301', '401', '501') (0, 1, 2) ['101', '201', '301']

有人可以告诉我这里发生了什么吗?

Python 3.8.2, Tkinter 8.6

答:因为前提假。

listvariable.get(( 返回一个字符串,而不是一个元组。

经验教训:始终仔细检查对象类型。

最新更新