我正在尝试了解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!”
答案 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()
演示:
重要的是要确保要放在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()