在类中工作,我试图在列表框中获取所选项目,但是当我应用选择索引时,元组似乎变成了字符串。
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(( 返回一个字符串,而不是一个元组。
经验教训:始终仔细检查对象类型。