编辑新Toplevel窗口的内容

时间:2013-12-08 19:40:36

标签: python tkinter

我正在尝试了解Tkinter中的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!”

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

Toplevel类似于Frame,你只需使用pack或grid在其中添加小部件。使用您的示例,我添加了一个标签,其文本绑定到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()