Есть ли способ предотвратить открытие 2 одинаковых экранов tkinter?

#python #tkinter

Вопрос:

В моей программе я хочу иметь возможность нажать кнопку, которая откроет новое окно tkinter. У меня это работает, но я видел, что когда вы снова нажимаете кнопку, открывается то же самое окно. Как мне это предотвратить?

код:

 def login_success():
    print('Login success')   #confirmation that Go button works, funtion will change

def login_screen():
    global screen
    root.geometry('300x350')
    root.title('Login')

    global username_login
    global password_login
    username_login = StringVar() #turns global variable into string
    password_login = StringVar()
    

    Label(text = 'TGUP' , bg = 'light blue', width ='300', height = '2', font =('Calibri',13)).pack()
    Label(text = '').pack()
    Button(text = 'Register', height='2',width='30', command=Reg).pack() #opens new window
    Label(text='').pack()
    Label(text = 'Login', fg = 'purple', font=10).pack()
    Label(text = 'Username').pack()
    username_entry1 = Entry(textvariable = username_login, bg='light grey').pack() #entry box for inputs
    Label(text = 'Password').pack()
    password_entry1 = Entry(textvariable = password_login, bg='light grey', show='*').pack()
    Button(text = 'Go', width = '10', height='2', fg='green', command=login_success ).pack()
    Label(text='').pack()
    Button(text='Exit', height='2',width='20', fg='red' ,command=root.destroy).pack()  #destroys window
    
 

Комментарии:

1. Пожалуйста, предоставьте код. Невозможно узнать, что не так, если вы не дадите какой-то код

2. Используйте <tkinter.Button>.config(state="disabled") для отключения кнопки. Вы можете использовать <tkinter.Button>.config(state="normal") , когда пользователь закрывает окно, чтобы включить кнопку

3. @Sujay предоставил целевую часть кода.