我正在用 Python 創建一個 GUI 應用程式。這是我的代碼的一部分。我的問題是,一旦用戶注冊了他的用戶名和密碼,它就不會將資料保存到檔案中。因此,一旦用戶想要登錄,它就會說找不到用戶。我不知道缺少什么,如果有人能幫我一把,那就太好了。謝謝
class Register(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.config(bg = "black")
def register_user():
username_info = username.get()
password_info = password.get()
username_entry.delete(0, END)
password_entry.delete(0, END)
file = open(username_info, "w")
file.write(username_info "\n")
file.write(password_info "\n")
file.close()
Label(register_user, text="Registration Success", fg="black", font=("calibri", 12)).pack()
Label(self,text="Please enter details below to Register", bg="white").pack()
Label(self,text="").pack()
username = Label(self, text="Username: ", bg="black", fg="white")
username.pack()
entryusername = Entry(self, width=20, bg="white")
entryusername.pack()
pw = Label(self, text="Password: ", bg="black", fg="white")
pw.pack()
entrypw = Entry(self, width=20, bg="white")
entrypw.pack()
save = Button(self, text="Save", width=8, command=lambda: master.switch(Login))
save.pack(padx=10, pady=10)
uj5u.com熱心網友回復:
你永遠不會跑,register_user()所以它不能保存它。
也許在Button你應該使用command=register_user和在register_user()添加結束時 master.switch(Login)
順便提一句:
您從錯誤的小部件中獲取值。你得到username.get()但是username是一個Label. 你應該使用entryusername.get(). 你得到password.get()但你沒有password- 你應該使用entrypw.get(). 您還嘗試洗掉文本,password_entry但您沒有password_entry.
您也將其register_user用作父級Label- 這是不正確的。另外注冊后會切換到其他,Frame所以沒時間顯示。
具有其他更改的最少作業代碼。但我跳過了更改為Login.
我register_user()在類中放置了普通函式,所以我需要使用,self.但這使代碼更具可讀性。
import tkinter as tk # PEP8: `import *` is not preferred
class Register(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.config(bg="black")
l = tk.Label(self, text="Please enter details below to Register", bg="white")
l.pack(pady=(0, 10))
l = tk.Label(self, text="Username: ", bg="black", fg="white")
l.pack()
self.username_entry = tk.Entry(self, width=20, bg="white")
self.username_entry.pack()
l = tk.Label(self, text="Password: ", bg="black", fg="white")
l.pack()
self.password_entry = tk.Entry(self, width=20, bg="white")
self.password_entry.pack()
b = tk.Button(self, text="Save", width=8, command=self.register_user)
b.pack(padx=10, pady=10)
def register_user(self):
username_info = self.username_entry.get()
password_info = self.password_entry.get()
self.username_entry.delete(0, 'end')
self.password_entry.delete(0, 'end')
file = open(username_info, "w")
file.write(username_info "\n")
file.write(password_info "\n")
file.close()
self.master.switch(Login)
# --- main ---
root = tk.Tk()
reg = Register(root)
reg.pack()
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369389.html
