Я сделал 2 окна: main
& login
. Мне нужна кнопка и окно входа в верхний уровень, но всегда прыгать в главную, почему? Если я пишу код в poplogin() и не импортирую модуль, он работает правильно.tkinter: почему мое окно входа в систему не находится в правильном положении?
main.py
#! python3
from tkinter import *
from login import login
def demo():
root = Tk()
root.title("demo")
root.geometry('640x400')
Button(root,text='login',width=10,command=poplogin).grid(row=3,column=1,padx=10,pady=5)
root.mainloop()
def poplogin():
toplevel = Toplevel()
toplevel.grid()
toplevel.title('login')
login(toplevel)
if __name__ == "__main__":demo()
login.py
#! python3
from tkinter import *
class login(Frame):
def __init__(self,parent=None):
Frame.__init__(self,parent)
self.creat_login()
def creat_login(self):
Label(text='email').grid(row=1)
user_email = Entry()
user_email.grid(row=1,column=1,padx=10,pady=5)
Label(text='password').grid(row=2)
user_password = Entry(show='*')
user_password.grid(row=2,column=1,padx=10,pady=5)
Button(text='login',width=10).grid(row=3,column=1,padx=10,pady=5)
if __name__ == '__main__':
login().mainloop()
вы должны использовать 'parent' в widgets: 'Entry (parent, ...)' и т. д. Если вы не используете родительское, то 'tkinter' используйте главное окно. – furas
@furas это нормально, спасибо U !!! –
@furas Я добавляю правильный код, но я не знаю, почему self.grid() не имеет никакого эффекта? –