Кнопка в tkinter вылезает в другое окно
Вообще не знаю что делать, уже всё перепробовал (из того, что я знаю)
def checker():
pas = password.get()
log = login.get()
if log == 'python' and pas == 'nohtyp':
root = Tk()
root.geometry('400x400')
root.title('Панель управления проектами')
la1 = Label(text='')
la1.grid()
bu1 = Button(text='Калькулятор', command=calc)
bu1.grid()
root.mainloop()
else:
err = m.showerror(title="Access denied", message="you can't to enter to panel")
...
wig = Tk();
wig.geometry('200x200');
wig.title('Пропуск в панель управления');
login1 = Label(text='Login:');
login1.grid();
login1.place(x=80, y=0);
password1 = Label(text='Password:');
password1.grid();
password1.place(x=70, y=40);
login = Entry();
login.grid();
login.place(x=40, y=20);
password = Entry(show='*');
password.grid();
password.place(x=40, y=60);
checkbut = Button(text='check',command=checker,bg='red',activebackground='red3');
checkbut.grid();
checkbut.place(x=80, y=100);
wig.mainloop();
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Когда вы создаете виджеты без указания родительского окна, они крепятся к основному окну (тому, которое вы создали первым). В дочерних окнах нужно указывать родительское окно:
root = Tk()
...
bu1 = Button(root, text='Калькулятор', command=calc)
Также советую создавать дочерние окна как объекты класса Toplevel, а не Tk, иначе у вас будут проблемы с переменными tk (IntVar и т.д.), ну и вызов mainloop должен быть только один (у главного окна - в вашем случае это wig).