使用tkinter列表框时发生令人困惑的错误

时间:2018-07-28 22:24:33

标签: python python-3.x tkinter listbox

我在使用self时遇到了一个非常令人困惑的错误:

这里,我用tkinter创建了两个具有两个不同类的页面。一页显示雇员信息,另一页允许用户将数据添加到主页(显示数据的窗口)上的列表框中。我试图将信息添加到列表框中,但出现错误'NewEmployee' object has no attribute 'listbox'

在下面您可以看到我清楚地在使用自我。对于我已创建的列表框,错误显示了另一个不在列表框内的类?

class MainPageGUI:
    def __init__(self, master):

        self.master = master
        self.master.title("Jans Corp")
        self.master.configure(background='lightgrey')
        self.master.geometry("1200x800")

        self.listbox = tk.Listbox(self.master,width=150, height=35)
        self.listbox.place(x=150, y = 130)

        @staticmethod
        def DisplayData(self):
        a = Database(self.master)
             for data in enumerate(a.ReadData()):
             self.listbox.insert(1, data) #getting error here

允许用户使用输入框和按钮添加emplyoee数据的类。(不完整):

Add Employee page

class NewEmployee:
    def __init__(self, master): #Creating basic GUI to add employees

        self.master = master
        self.master.title("Jans Corp")
        self.master.configure(background="lightgrey")
        self.master.geometry("300x500")

当我在NewEmployee中创建并使用self时,编译器为何说MainPageGUI类没有“列表框”时,我感到困惑。

如果有人想查看代码:https://github.com/Sharjeel50/Database-System/blob/master/New%20Project1.py

任何帮助或解释将不胜感激!

1 个答案:

答案 0 :(得分:1)

如果您想在self.master中使用DisplayData,请删除@staticmethod装饰器,并在self.master = master中包含__init__