我做了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()看起來沒有任何影響? –