Я пытаюсь разделить LoginWindow
и mainWindow
на разные модули / файлы.Сначала я создаю в моем mainWindow
функцию с именем bgWindow
, чтобы избежать закрытия приложения, и вызываю эту функцию в файле.Одна проблема, с которой я столкнулся при заполнении кодов для loginWindow
, заключается в том, чтобы выяснить, как открыть главное окно после успешного входа пользователя из функции login_user, не вызывая циклических зависимостей.
Я пытался использовать from mainWindow import mainScreen
но это приведет к другому mainLoop()
.
mainWindow.py
:
def mainWindow():
print("Go to main Window")
def bgWindow():
screen = tk.Tk()
width = 1024
height = 620
screen.title("Inventory Management System")
screen_width = screen.winfo_screenwidth()
screen_height = screen.winfo_screenheight()
x = (screen_width/2) - (width/2)#adjust width by 2
y = (screen_height/2) - (height/2)
screen.geometry("%dx%d+%d+%d" % (width, height, x, y))
screen.resizable(0, 0)
screen.config(bg="#98BDF0")
label1 = tk.Label(text = "Welcome to the Simple Inventory Management System", width = "300", height="2", bg = "#6a84a8", font = ('Calibri', 20))
label1.pack()
screen.after(250, startupWindow)
screen.mainloop()
bgWindow()
loginWindow.py
:
import mainWindow
def login_user():
userLogInfo = logUsername.get()
passLogInfo = logPassword.get()
cursor.execute("SELECT * FROM employeeUser WHERE username = ? and password = ?",(userLogInfo, passLogInfo))
loginUser = cursor.fetchone()
if userLogInfo == "" or passLogInfo == "":
lblResultLog.config(text="Please fill in the entire field!", fg="red")
```
elif loginUser is not None:
print("Login Success")
loginScr.destroy()
startupScreen.destroy()
mainWindow.mainWindow()
```
else:
lblResultLog.config(text="Invalid username or password!", fg="red")
logUsername.set("")
logPassword.set("")