我正在研究一個需要多個窗口的程序,第一個出現的是登錄窗口,我使用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