import tkinter as tkimport mysql.connector# 創建MySQL數據庫連接mydb = mysql.connector.connect(host="localhost", user="root", passwd="password", database="mydatabase")# 創建用戶表mycursor = mydb.cursor()mycursor.execute("CREATE TABLE IF NOT EXISTS users (username VARCHAR(255), password VARCHAR(255))")# 登錄函數def login():username = username_entry.get()password = password_entry.get()mycursor.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password))result = mycursor.fetchall()if result:status_label.config(text="Login successful")else:status_label.config(text="Invalid username or password")# 注冊函數def register():username = username_entry.get()password = password_entry.get()mycursor.execute("SELECT * FROM users WHERE username = %s", (username,))result = mycursor.fetchall()if result:status_label.config(text="Username already exists")else:mycursor.execute("INSERT INTO users (username, password) VALUES (%s, %s)", (username, password))mydb.commit()status_label.config(text="Registration successful")# 修改密碼函數def change_password():username = username_entry.get()old_password = old_password_entry.get()new_password = new_password_entry.get()mycursor.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, old_password))result = mycursor.fetchall()if result:mycursor.execute("UPDATE users SET password = %s WHERE username = %s", (new_password, username))mydb.commit()status_label.config(text="Password changed successfully")else:status_label.config(text="Invalid username or password")# 創建主窗口root = tk.Tk()root.title("Login System")# 創建登錄界面login_frame = tk.Frame(root)login_frame.pack(pady=20)username_label = tk.Label(login_frame, text="Username:")username_label.grid(row=0, column=0, padx=10, pady=10)username_entry = tk.Entry(login_frame)username_entry.grid(row=0, column=1, padx=10, pady=10)password_label = tk.Label(login_frame, text="Password:")password_label.grid(row=1, column=0, padx=10, pady=10)password_entry = tk.Entry(login_frame, show="*")password_entry.grid(row=1, column=1, padx=10, pady=10)login_button = tk.Button(login_frame, text="Login", command=login)login_button.grid(row=2, column=0, padx=10, pady=10)register_button = tk.Button(login_frame, text="Register", command=register)register_button.grid(row=2, column=1, padx=10, pady=10)# 創建修改密碼界面change_password_frame = tk.Frame(root)change_password_frame.pack(pady=20)old_password_label = tk.Label(change_password_frame, text="Old Password:")old_password_label.grid(row=0, column=0, padx=10, pady=10)old_password_entry = tk.Entry(change_password_frame, show="*")old_password_entry.grid(row=0, column=1, padx=10, pady=10)new_password_label = tk.Label(change_password_frame, text="New Password:")new_password_label.grid(row=1, column=0, padx=10, pady=10)new_password_entry = tk.Entry(change_password_frame, show="*")new_password_entry.grid(row=1, column=1, padx=10, pady=10)change_password_button = tk.Button(change_password_frame, text="Change Password", command=change_password)change_password_button.grid(row=2, column=0, padx=10, pady=10)# 創建狀態標簽status_label = tk.Label(root, text="")status_label.pack(pady=10)root.mainloop()上述代碼中的MySQL連接信息(host, user, passwd, database)需要根據實際情況進行修改。