2
from tkinter import*
import tkinter as tk

def topLevel():
    top=Toplevel()
    top.title("Listbox test")
    notiLabel = Label(text ="----test----", font=('Times', 20))
    notiLabel.pack()
    notiLabel.grid(row=0,column=0, sticky=W)

    noti = Label(text ="----test----", font=('Times', 18))
    noti.pack()
    noti.grid(row=1,column=1, sticky=W)

    f = Label(text ="------test-----")
    f.pack()
    f.grid(row=3,column=0, sticky=W)
    fa = Label()
    fa.pack()
    fa.grid(row=3,column=1, sticky=W)


root=tk.Tk()
root.title("Listbox test")

s = tk.Label(text =">>>test<<<", font=(('Times'),20))
s.pack()
s.grid(row=2,column=0)


N = tk.Label(text =">>>test<<<")
N.pack()
N.grid(row=3,column=0)


LB = tk.Listbox(width=50, selectmode =SINGLE)
LB.pack()
LB.grid(row=4, column=0)


TI = tk.Button(text="b1", width =50, command=topLevel)
TI.pack()
TI.grid(row=5, column=0)

root.mainloop()

程序运行时,点击命令按钮b1后,顶层窗口的信息和标签仍然打印在下层窗口,如何解决?

4

2 回答 2

3

您必须指定在哪个框架(Toplevel())上添加新小部件:

from Tkinter import *

def topLevel():
    top=Toplevel()
    top.title("Listbox test")
    notiLabel = Label(top, text ="----test----", font=('Times', 20))
    notiLabel.grid(row=0,column=0, sticky=W)

    noti = Label(top, text ="----test----", font=('Times', 18))
    noti.grid(row=1,column=1, sticky=W)

    f = Label(top, text ="------test-----") # note the 'top' parameter
    # 'top' was your Toplevel widget
    f.grid(row=3,column=0, sticky=W)
    fa = Label(top)
    fa.grid(row=3,column=1, sticky=W)


root=Tk()
root.title("Listbox test")

s = Label(text =">>>test<<<", font=(('Times'),20))
s.grid(row=2,column=0)


N = Label(text =">>>test<<<")
N.grid(row=3,column=0)


LB = Listbox(width=50, selectmode =SINGLE)
LB.grid(row=4, column=0)


TI = Button(text="b1", width =50, command=topLevel)
TI.grid(row=5, column=0)

root.mainloop()

我也摆脱了.pack()and的用法.grid(),只使用.grid().

于 2013-04-13T21:19:30.770 回答
2

这是我使用此参考解决的方法:

top=Toplevel()
notiLabel = Label(top, text ="----test----", font=('Times', 20))

代替:

top=Toplevel()
notiLabel = Label(text ="----test----", font=('Times', 20))

我必须在小部件中声明“顶部”并在根小部件中声明根。

于 2013-04-13T21:18:52.920 回答