Есть ли способ открыть окно из разных модулей, не вызывая циклические зависимости? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь разделить 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("")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...