嗨,我是编码新手,不断收到此错误 RecursionError: maximum recursion depth exceeded 并且它说第 12 行是
self.geometry("250x300")
但我不确定为什么我会收到该错误。这也是我第一次使用 customtkinter 和类,所以我可能做错了。早些时候它正在运行,当我运行它时,我会遇到另一个错误,即 grab()
中的 class depositwindow()
函数错误是属性错误MainScreen.Bankbalance
没有类型。我也不确定如何解决。
import customtkinter
import random
bankbalancenumber = random.randint(10000,150000)
account_number = random.randint(1111111111, 999999999999)
login_list = []
class login_screen(customtkinter.CTk):
def open_bank_account(self):
self.MainScreen = MainScreen(self)
def signup(self):
global login
login_list.append(self.entry_1.get())
login_list.append(self.entry_2.get())
print(login_list)
def login(self):
print(login_list)
if login_list[0] == self.entry_1.get() and login_list[1] == self.entry_2.get():
self.open_bank_account()
else:
print("wrong username or password")
def __init__(self):
customtkinter.set_appearance_mode("dark")
customtkinter.set_default_color_theme("blue")
self.geometry("250x300") # 900x1080
self.title("Login")
self.columnconfigure(0, weight=1)
self.label_1 = customtkinter.CTkLabel(self, text="Bank Account", justify=customtkinter.RIGHT)
self.label_1.grid(row=0, column=0, pady=10, padx=10)
self.button_1 = customtkinter.CTkButton(self, command=self.signup, text="signup")
self.button_1.grid(row=5, column=0, pady=10, padx=10)
self.button_2 = customtkinter.CTkButton(self, command=self.login, text="login")
self.button_2.grid(row=4, column=0, pady=10, padx=10)
self.entry_1 = customtkinter.CTkEntry(self, placeholder_text="Username")
self.entry_1.grid(row=2, column=0, pady=10, padx=10)
self.entry_2 = customtkinter.CTkEntry(self, placeholder_text="Password")
self.entry_2.grid(row=3, column=0, pady=10, padx=10)
class MainScreen(customtkinter.CTk):
bankbalance = None
def open_deposit(self):
self.deopsit_window = DepositWindow(self)
def deposit(self):
self.open_deposit()
def __init__(self,fg_color=None, *args, **kwargs):
super().__init__()
# Add widgets to the frame
self.geometry("700x700")
self.title("Main")
self.bankbalance=customtkinter.CTkLabel(self, font=("Arial", 24), text="$" + str(bankbalancenumber))
self.bankbalance.grid(row=0, column=0, rowspan=2, pady=10, padx=50, stick="W")
self.columnconfigure(0, weight=1)
self.columnconfigure(1, weight=1)
self.columnconfigure(2, weight=1)
self.rowconfigure(0, weight=1)
self.rowconfigure(1, weight=0)
self.rowconfigure(2, weight=1)
self.rowconfigure(3, weight=1)
self.rowconfigure(4, weight=1)
self.rowconfigure(5, weight=1)
self.rowconfigure(6, weight=1)
self.rowconfigure(7, weight=1)
self.label_3 = customtkinter.CTkLabel(self, text=login_list[0] + "'s Account")
self.label_3.grid(row=0, column=0, pady=10, padx=10, sticky="NW" )
self.label_4 = customtkinter.CTkLabel(self, text="Account# " + str(account_number))
self.label_4.grid(row=0, column=3, pady=10, padx=10, sticky="NE")
self.button_3 = customtkinter.CTkButton(self, text="Deposit", command=self.deposit)
self.button_3.grid(row=1, column=3, sticky="E", padx=50, pady=10)
self.button_4 = customtkinter.CTkButton(self, text="Withdraw")
self.button_4.grid(row=2, column=3, sticky="E", padx=50, pady=0)
class DepositWindow(customtkinter.CTk):
def grab(self):
global bankbalancenumber
moneyin = self.entry_3.get()
MONEYIN = int(moneyin)
bankbalancenumber += MONEYIN
print(bankbalancenumber)
MainScreen.bankbalance.configure(bankbalancenumber)
def __init__(self, fg_color=None, *args, **kwargs):
super().__init__()
self.title("Deposit")
self.geometry("150x250")
self.button_5 = customtkinter.CTkButton(self, text="deposit", command=self.grab)
self.button_5.grid(pady=10, padx=10, row=2)
self.entry_3 = customtkinter.CTkEntry(self)
self.entry_3.grid(row=1, pady=10, padx=10)
if __name__ == "__main__":
app = login_screen()
app.mainloop()