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

Python 从tk列表框返回多个选择,python,tkinter,Python,Tkinter,我有一个列表框,并希望能够返回从所说的列表框多个选择 def OnButtonClick(self): global confirmedsel confirmedsel = "" sel = self.lbox.curselection() seltext = self.lbox.get(sel) confirmedsel = seltext

我有一个列表框,并希望能够返回从所说的列表框多个选择

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()
我曾尝试将“seltext”变量更改为列表(map(int()))格式,但我得到了错误的listbox索引

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()
我不知道该怎么做;感谢您的帮助

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()
我当前识别所选变量的方式:

        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()
我分配单个选择的方式

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()
你试过这个吗? 您可以在此处查找光标的使用:

列表框的
curselection
方法返回表示所选项目的索引元组。您只需迭代该列表并调用
get
方法来获取每个元素

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()
您可以使用列表理解在一行中执行此操作,从而生成一个列表,其中包含作为字符串的选定项的值:

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()
seltext = [self.lbox.get(index) for index in self.lbox.curselection()]
如果您发现列表理解很难阅读,下面是一个使用简单循环的解决方案:

        def OnButtonClick(self):
            global confirmedsel
            confirmedsel = ""
            sel = self.lbox.curselection()
            seltext = self.lbox.get(sel)
            confirmedsel = seltext
            print(confirmedsel)
            app.quit()
results = []
for index in self.lbox.curselection():
    results.append(self.lbox.get(index))

嗨,内哈,谢谢你的回复!我确实试过了。选择第一个选项会创建一个ValueError:invalid literal for int(),以10为基数:“a”当我选择其他选项时,我会得到一个Tcl错误:错误的列表框索引:必须是活动的、锚定的、结束的、@x、y或数字。我们的示例代码太多,代码又不够。太多的原因是我们不需要输入项、滚动条或某些函数,太少的原因是您没有显示任何调用
初始化
或用数据填充列表的代码。抱歉,我认为我不需要发布DataFrame的创建我们不需要DataFrame本身,我们只需要一些硬编码的数据,类似于你的真实世界的数据。