从tk列表框中返回多个选择

时间:2018-11-22 18:50:40

标签: python tkinter

我有一个列表框,希望能够从该列表框中返回多个选择。

我尝试将“ seltext”变量更改为list(map(int()())))格式,但出现了错误的列表框索引错误。

我不确定该如何处理;任何帮助表示赞赏。

我当前识别所选变量的方式:

        def selecting(self,event):
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            self.labelVariable.set(seltext)

我分配单个选择的方式。

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()

2 个答案:

答案 0 :(得分:0)

def selecting(self,event):
        sel = self.lbox.curselection()
        seltext = list(map(int,self.lbox.get(sel)))
        self.labelVariable.set(seltext)

您尝试过吗? 您可以在此处查找curselection的用法: http://effbot.org/tkinterbook/listbox.htm

答案 1 :(得分:0)

列表框的curselection方法返回一个表示选定项目的索引元组。您只需要遍历该列表并调用get方法即可获取每个元素。

使用列表推导在一行中执行此操作,这将导致一个列表,其中包含作为字符串的所选项目的值:

seltext = [self.lbox.get(index) for index in self.lbox.curselection()]

如果发现列表理解难以理解,这是一个使用简单循环的解决方案:

results = []
for index in self.lbox.curselection():
    results.append(self.lbox.get(index))