Я пытаюсь создать экран входа для своего приложения, и мне просто интересно, подходит ли это для этого. Я настроил его так, чтобы команда Button проверяет учетные данные и создает новый класс (который является только новым фреймом), если они верны.Создавать класс из класса
class Login():
def __init__(self, master):
self.frame = Frame(master)
self.frame.pack()
self.logo = Label(self.frame)
self.logo.grid(row=0, columnspan=2)
self.user_name = Label(self.frame, text="Username:")
self.pw = Label(self.frame, text="Password:")
self.entry_1 = Entry(self.frame)
self.entry_2 = Entry(self.frame, show="*")
self.user_name.grid(row=1, column=0)
self.pw.grid(row=3, column=0)
self.entry_1.grid(row=2, column=0)
self.entry_2.grid(row=4, column=0)
self.login_button = Button(self.frame, text="Login", command=self.attempt)
self.login_button.grid(row=5,columnspan=2)
def attempt(self, *args):
if self.entry_1.get() == "USER" and self.entry_2.get() == "PASS":
self.frame.forget()
load = newFrame(root)
else:
print("Try Again")
self.try_again = Label(self.frame, text="Incorrect Username or Password", bg="#474747", fg="lightgray")
self.try_again.grid(row=9,columnspan=2)
class newFrame():
def __init__(self, master2):
self.a_var = IntVar()
self.b_var = IntVar()
frame_main = Frame(master2)
frame_main.grid(row=2, column=2)
a_check = ttk.Checkbutton(frame_main,text="A",variable=self.a_var)
a_check.grid()
b_check = ttk.Checkbutton(frame_main,text="B",variable=self.b_var)
b_check.grid()
frame_bottom = Frame(master2)
frame_bottom.grid(row=3, column=2)
self.scan_button = Button(frame_bottom, text="Scan", command=MasterScan)
self.scan_button.grid()
root = Tk()
new = Login(root)
Моя проблема заключается в том, что мне трудно получить доступ к переменным из этого недавно созданного класса.
Любые советы?
Спасибо!
Спасибо за ответ! Я пошел дальше и добавил «root» в качестве параметра в класс NewFrame(). Я также включил еще один код, представляющий его класс NewFrame(). Этот вопрос был фактически результатом проблемы с доступом к состоянию Checkbutton's в этом классе. Понял, что сначала разобрал бы это. –
Помогло ли вам немного двигаться вперед? – idjaw
На самом деле я просто хотел убедиться, что я на правильном пути. Моя реальная проблема здесь заключается в доступе к переменной Checkbutton вне класса, в результате ее создания в первом классе. Я собирался представить второй вопрос для этого, но если у вас есть какой-либо совет, я очень ценю это! –