Python 继承和用户/密码登录问题

Python 继承和用户/密码登录问题,python,tkinter,Python,Tkinter,目前在我的系统代码中,我似乎无法让我的系统只在一个窗口中打开。当我运行代码时,它会打开两个屏幕,而不是主屏幕。我知道这是由于继承了我的类,只是不确定需要更改什么。(日历部分和通用框架) 第二,我需要一个用户名和密码登录,这样它们都可以相互依赖。我已经定义了它们中的每一个,但无法让它们一起工作,因此如果用户名错误,密码正确,它将不会进入受保护区域ect(主菜单部分) 我的代码可以在这里找到- 我认为我的继承问题在于: class GenericSkeleton: #constructor

目前在我的系统代码中,我似乎无法让我的系统只在一个窗口中打开。当我运行代码时,它会打开两个屏幕,而不是主屏幕。我知道这是由于继承了我的类,只是不确定需要更改什么。(日历部分和通用框架)

第二,我需要一个用户名和密码登录,这样它们都可以相互依赖。我已经定义了它们中的每一个,但无法让它们一起工作,因此如果用户名错误,密码正确,它将不会进入受保护区域ect(主菜单部分)

我的代码可以在这里找到-

我认为我的继承问题在于:

class GenericSkeleton:

    #constructor creates the window
    def __init__(self):#need to pass in the current object
        self.GenericGui = Tk()#creating a window
        self.GenericGui.title('Housing Management System')
        self.GenericGui.geometry('600x450+250+30')
        self.GenericGui.resizable(width = FALSE, height = FALSE)
        #self.Logo = PhotoImage()
        #Label(self.GenericGui,image = self.Logo).place(x=500,y=0)


    #generic destroy function
    def delete(self):
        self.GenericGui.destroy()


如果我得到一些建议,这将意味着很多,我是一个初学者,所以如果你们能提供帮助,我们将不胜感激

请在这里发布你们的代码。链接可能在将来失效,这将使你的问题对未来的访问者毫无用处。如果我们手头有所有必要的信息,我们也可以更容易地帮助您。@zondo代码,我认为这是造成问题的原因-已添加到上面
class Data:
    def __init__(self):
        GenericSkeleton.__init__(self)
        self.day_selected = 0
        self.month_selected = 0
        self.year_selected = 0
        self.day_name = 0

class Calendar(GenericSkeleton):
    def __init__(self,data):
        self.data = data
        GenericSkeleton.__init__(self)
        self.cal = calendar.TextCalendar(calendar.FRIDAY)
        self.year = 2016
        self.month = 1
        self.wid = []
        self.day_selected = 1
        self.month_selected = self.month
        self.year_selected = self.year
        self.day_name = ''

        self.setup(self.year, self.month)

    def clear(self):
        for w in self.wid[:]:
            w.grid_forget()
            #w.destroy()
            self.wid.remove(w)

    def go_prev(self):
        if self.month > 1:
            self.month -= 1
        else:
            self.month = 12
            self.year -= 1
        #self.selected = (self.month, self.year)
        self.clear()
        self.setup(self.year, self.month)

    def go_next(self):
        if self.month < 12:
            self.month += 1
        else:
            self.month = 1
            self.year += 1

        #self.selected = (self.month, self.year)
        self.clear()
        self.setup(self.year, self.month)

    def selection(self, day, name):
        self.day_selected = day
        self.month_selected = self.month
        self.year_selected = self.year
        self.day_name = name

        self.data.day_selected = day
        self.data.month_selected = self.month
        self.data.year_selected = self.year
        self.data.day_name = name

        #self.selected = day
        self.clear()
        self.setup(self.year, self.month)

    def setup(self, y, m):
        left = tk.Button(self.parent, text='<', command=self.go_prev)
        self.wid.append(left)
        left.grid(row=0, column=1)

        header = tk.Label(self.parent, height=2, text='{}   {}'.format(calendar.month_abbr[m], str(y)))
        self.wid.append(header)
        header.grid(row=0, column=2, columnspan=3)

        right = tk.Button(self.parent, text='>', command=self.go_next)
        self.wid.append(right)
        right.grid(row=0, column=5)

        days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
        for num, name in enumerate(days):
            t = tk.Label(self.parent, text=name[:3])
            self.wid.append(t)
            t.grid(row=1, column=num)

        for w, week in enumerate(self.cal.monthdayscalendar(y, m), 2):
            for d, day in enumerate(week):
                if day:
                    #print(calendar.day_name[day])
                    b = tk.Button(self.parent, width=1, text=day, command=lambda day=day:self.selection(day, calendar.day_name[(day-1) % 7]))
                    self.wid.append(b)
                    b.grid(row=w, column=d)

        sel = tk.Label(self, height=2, text='{} {} {} {}'.format(
            self.day_name, calendar.month_name[self.month_selected], self.day_selected, self.year_selected))
        self.wid.append(sel)
        sel.grid(row=8, column=0, columnspan=7)

        ok = tk.Button(self, width=5, text='OK', command='disabled')
        self.wid.append(ok)
        ok.grid(row=9, column=2, columnspan=3, pady=10)

def win(self,d):
    cal = Calendar(win, d)




data = Data()
#this function is a Username validator
        def EnterUsername():
            UsernameAttempt = Username.get()#how to get value from entry box

        #this function is a password validator
        def EnterPassword():
            Attempt = Password.get()#how to get value from entry box

            if Attempt == 'password' and Attempt == 'username' :
                self.delete()
                Secret = SecretMenu()
            else:
                PasswordError = messagebox.showerror('Password/Username Entry','Incorrect Username or Password entered.\n         Please try again.')