2013-12-08 68 views
1

我想了解Tkinter中的Toplevel窗口小部件。我想用一個按鈕創建一個窗口,當點擊時它會打開一個帶有內容的新窗口。編輯新Toplevel窗口的內容

我有這個,它打開了一個新的windown罰款,但我不知道如何編輯該新窗口的內容。

from Tkinter import * 

master = Tk() 
C = Canvas(master, width=200, height=100) 
C.pack() 

def Open(): 
    top = Toplevel() 

b = Button(master, text="Open New Window", command=Open) 
b.pack() 

mainloop() 

爲方便起見,我們只是說我想讓新窗口包含一些文本,例如:「Hello World!」。

回答

3

您可以使用Toplevel幾乎一模一樣,所使用的根窗口:

from Tkinter import * 

master = Tk() 
C = Canvas(master, width=200, height=100) 
C.pack() 

def Open(): 
    top = Toplevel() 
    # Add a label to the TopLevel, just like you would the root window 
    lbl = Label(top, text="Hello World") 
    lbl.pack() 

b = Button(master, text="Open New Window", command=Open) 
b.pack() 

mainloop() 

演示:

enter image description here

重要的是要確保你想放入Toplevel小部件有正確的括號噸。在上面的代碼中,您會注意到我將標籤top作爲其父項,因爲我希望它的編號爲Toplevel

2

Toplevel類似於一個框架,你只需使用包或網格添加小部件。使用你的榜樣,我添加了一個標籤,與它的文本綁在STRINGVAR:

from Tkinter import * 

master = Tk() 
C = Canvas(master, width=200, height=100) 
C.pack() 

some_string = StringVar(master, "Hello, World!") 


def Open(): 
    top = Toplevel() 
    some_frame = Frame(top) 
    some_label = Label(some_frame, textvariable=some_string) 
    some_label.pack() 
    some_frame.pack(fill=BOTH, expand=TRUE) 

b = Button(master, text="Open New Window", command=Open) 
b.pack() 

mainloop()