2017-10-17 119 views
-2

我希望我点击一个按钮后更新我的Listbox小部件。但是我遇到了一个逻辑错误。当我点击按钮时,没有任何反应。根本没有错误。在Python中添加项目到列表框Tkinter

listOfCompanies: [[1, ''], [2, '-'], [3, '@ASK TRAINING PTE. LTD.'], [4, 'AAIS'], [5, 'Ademco'], [6, 'Anacle'] 

def populatebox(): 
      listBox.insert("end", listOfCompanies) 

btn = Button(self, text="Update list", command = lambda: populatebox()) 
btn.pack() 
+0

我不相信你没有得到一个错误。 'listOfCompanies'是一个'list',它在函数'populatebox()'内部不存在,所以当它在函数内部调用时会返回一个错误'NameError:name'listOfCompanies'没有被定义。所以你保证将你提供给我们的代码返回一个错误。 –

+0

即使列表未在populatebox()中定义,也可以对列表进行读取访问 - 因此Python不会抱怨该列表 – DonGru

+0

@DonGru“列表”不存在,句号。她宣布它不正确。 –

回答

0

如果你正在寻找刚刚从list插入每一个tupleListbox因为他们没有分离出tuple然后有两个重大变化。

首先你不能声明一个列表为list: [1, 2, 3, ...],它必须是list = [1, 2, 3, ...]

其次,您目前正尝试将整个list插入到Listbox中的一个条目中。你应该改写它们,见下面的例子:

from tkinter import * 

root = Tk() 

listBox = Listbox(root) 
listBox.pack() 

listOfCompanies = [[1, ''], [2, '-'], [3, '@ASK TRAINING PTE. LTD.'], [4, 'AAIS'], [5, 'Ademco'], [6, 'Anacle']] 

def populatebox(): 
    for i in listOfCompanies: 
     listBox.insert("end", i) 

btn = Button(root, text="Update list", command = lambda: populatebox()) 
btn.pack() 
+0

实际上,我从阅读.csv文件中得到了这个列表,但是我没有将它包含在原始文章中,因为我认为它会使文章太冗长而且无关紧要。无论哪种方式,我试着放置你建议的代码,同样,当我点击按钮时,它没有输出,也没有错误。 –

+0

划痕,它工作。感谢Ethan。 –

+0

如果此解决方案回答您的问题,请您将其标记为未来用户接受。 –