我做了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'在窗口小部件:'Entry(parent,...)'等。如果你不使用父窗口,那么'tkinter'使用主窗口。 – furas
@furas它是好的谢谢你! –
@furas我最后添加了正确的代码,但我不知道为什么self.grid()看起来没有任何影响? –