【发布时间】:2021-05-07 08:09:21
【问题描述】:
我试图将登录类中的变量显示到我的菜单类,但每当我这样做时,我总是得到错误 Object login has no attribute user。
这是我的login.py 文件
def login(self):
global con
user = self.txt_user.get().strip()
pwd = self.txt_pass.get().strip()
if user == "" or pwd == "":
messagebox.showerror("Error", "Please fill up all fields!")
else:
try :
con=pymysql.connect(host="localhost",user="root",password="",database="employee")
cur=con.cursor()
cur.execute("select 1 from employeelist where username=%s and password=%s", (user,pwd))
if cur.rowcount == 1:
messagebox.showinfo("Success", "Login Successful", parent=self.root)
self.menu()
else:
messagebox.showerror("Error", "Wrong Username or Password. Please try again!")
except Exception as ex:
messagebox.showerror("Error",f"Error due to: {str(ex)}",parent=self.root)
finally:
con.close()
def menu(self):
self.root.destroy()
menu.MenuForm()
if __name__ == "__main__":
root = Tk()
obj = Login(root)
root.mainloop()
这是我的menu.py 文件
from tkinter import *
from tkinter import ttk, messagebox
import PIL
from PIL import ImageTk
from PIL import Image
import login
class Menu:
def __init__(self,root):
self.root = root
self.root.title("Main Menu")
self.root.geometry("1350x768+0+0")
self.root.resizable(False, False)
self.bg = ImageTk.PhotoImage(file="Images/bgimage.jpg")
bg = Label(self.root, image=self.bg).place(x=0, y=0, relwidth=1, relheight=1)
framemenu = Frame(self.root, bg="white")
framemenu.place(x=350, y=100, height=500, width=700)
welcometitle = Label(framemenu, text="Welcome " + login.Login.user(), font=("Arial", 30, "bold"), fg="orange", bg="white").place(x=70,y=70)
def MenuForm():
win = Tk()
obj = Menu(win)
if __name__ == "__main__":
root = Tk()
obj = Menu(root)
root.mainloop()
我在menu 类中导入了login,但它仍然给我错误对象没有实例。
【问题讨论】:
标签: python sql database tkinter