我正在研究一个需要多个窗口的程序,第一个出现的是登录窗口,我使用Toplevel小部件来使其他窗口成为其子窗口,但是此代码始终显示两个窗口一个。Python Tkinter Toplevel
from Tkinter import Frame, Toplevel
from ttk import Label, Entry, Button
class loginWindow(Toplevel):
def __init__(self):
Toplevel.__init__(self)
self.title("Title")
self.frame = Frame(self)
self.frame.pack()
self.__make_layout()
self.mainloop()
def __make_layout(self):
self.frame.user_name_label = Label(text="User name:")
self.frame.user_name_text = Entry()
self.frame.user_name_label.grid(row=0, column=0)
self.frame.user_name_text.grid(row=0, column=1)
self.frame.password_label = Label(text="Password:")
self.frame.password_text = Entry()
self.frame.password_label.grid(row=1, column=0)
self.frame.password_text.grid(row=1, column=1)
self.frame.login_button = Button(text="Login")# , command=self.__create_window)
self.frame.login_button.grid(row=2, column=0, columnspan=2)
if __name__ == '__main__':
win1 = loginWindow()
你甚至可以如何让Tkinter编译为X11而不是Aqua?这停止了我多个版本前工作... – abarnert
我使用的是Anaconda 2.7。 –
疯狂......无论如何,我可以在Windows上使用cygwin Python和X11来复制它。所以我想问题是,无论Tkinter如何隐藏未使用的主窗口,都可以在Aqua和Windows上以及至少一个现代GNOME X11系统上工作......但在所有X11系统上都不适用,可能特别包括XQuartz或Cygwin委托一些窗口管理到本地窗口管理器? – abarnert