这个代码会出现两个窗口!!

这个代码会出现两个窗口!!

#-*-coding:utf8-*-
from Tkinter import *

class MyFrame(Frame):

    def __init__(self,parent,title=None):
        Frame.__init__(self,parent,title)

        self.top=Toplevel(parent)
        Label(self.top,text="问题").pack()
        self.e=Entry(self.top)
        self.e.pack(padx=5)
        b=Button(self.top,text="确定",command=self.ok)
        b.pack(pady=5)

    def ok(self):
        print u"值为",self.e.get()
        type(self.e.get())
        self.top.destroy()



root=Tk()
d=MyFrame(root)
d.mainloop()


我是一个新手 ,怎么去掉多余的窗口啊!!
代码: self.top=Toplevel(parent) 将会新建一个新的窗口,将该行去掉, 后面的self.top用parent代替即可; 函数ok中的self.top用self替换。

此外,想知道你的代码是在linux下验证的吗? 我在windows下无法运行,将第一行修改为# -*- coding: utf-8 -*- 才能运行,但仍然无法正常显示中文。