from tkinter import *
from tkinter.ttk import *
class window(Tk):
def __init__(self, **kwargs):
Tk.__init__(self, **kwargs)
box=Frame(self).pack(fill=BOTH,expand=1)
login=Frame(box,self).pack(fill=BOTH,expand=1)
register=Frame(box,self).pack(fill=BOTH,expand=1)
self.fup(login)
def fup(self,f):
f.tkraise()
class login(Frame):
def __init__(self, parent, controller,**kwargs):
Frame.__init__(self, parent)
super().__init__(**kwargs)
lab=Label(self,text='Login').grid(row=0,column=3,pady=3)
but=Button(self,text='Signup',command=lambda : controller.fup(register)).grid(row=4,column=0)
class register(Frame):
def __init__(self, parent, controller,**kwargs):
Frame.__init__(self, parent)
super().__init__(**kwargs)
lab=Label(self,text='Register').grid(row=0,column=3,pady=3)
but=Button(self,text='<<',command=lambda : controller.fup(login)).grid(row=0,column=0)
win=window()
win.mainloop()
uj5u.com熱心網友回復:
你在這里有很多問題。首先,您對類和類物件的作業方式感到困惑。當你說
login=Frame(box,self).pack(fill=BOTH,expand=1)
這不會創建 class 的物件login。它創建了一個簡單的框架。在這種情況下,它根本不存盤物件,因為該pack方法不回傳任何內容。在您的login類中,您參考了register,但這不是一個物件,而是一個類。
這更接近你想要的,并彈出一個視窗,但由于我無法說出你真正想要什么,你必須從這里拿走它。
from tkinter import *
from tkinter.ttk import *
class login(Frame):
def __init__(self, parent, controller,**kwargs):
super().__init__(parent, **kwargs)
lab=Label(self,text='Login').grid(row=0,column=3,pady=3)
but=Button(self,text='Signup',command=lambda : controller.fup(controller.register)).grid(row=4,column=0)
class register(Frame):
def __init__(self, parent, controller,**kwargs):
super().__init__(parent, **kwargs)
lab=Label(self,text='Register').grid(row=0,column=3,pady=3)
but=Button(self,text='<<',command=lambda : controller.fup(controller.login)).grid(row=0,column=0)
class window(Tk):
def __init__(self, **kwargs):
Tk.__init__(self, **kwargs)
box=Frame(self)
box.pack(fill=BOTH,expand=1)
self.login=login(box,self)
self.login.pack(fill=BOTH,expand=1)
self.register=register(box,self)
self.register.pack(fill=BOTH,expand=1)
self.fup(self.login)
def fup(self,f):
f.tkraise()
win=window()
win.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323756.html
