打开文本框时出现第二个弹出框

时间:2019-05-23 08:30:00

标签: python tkinter

我有一些打开文本框的代码,因此用户可以输入EAN,然后抓取网络。一切正常,除非出于某种原因,一个神秘的第二个文本框与原始文本框一起打开,除非您使用该文本框关闭程序,否则它将停止响应。

class MyDialog:
    def __init__(self, parent):     #Pop-up textbox

        top = self.top = Toplevel(parent)

        Label(top, text="Product EAN").pack()       #pop-up box text

        self.e = Entry(top, cursor = "xterm", width=25)     #Input textbox
        self.e.pack(padx=40)

        b = Button(top, text="Submit", command=self.ok, cursor = "hand2")   #Submit button for pop-up box
        b.pack(pady=5)

....


root = Tk()
d = MyDialog(root)
root.wait_window(d.top)

这是所有与文本框相关的代码-self.ok是抓取工具,因此对该问题不重要。有人可以向我解释或帮助解决此问题,因为我看不到为什么下面的图片是该图片的输出。

Double textbox?

谢谢。

1 个答案:

答案 0 :(得分:1)

问题是您先打开一个Tk()窗口,然后再打开另一个TopLevel()窗口,如果只需要一个窗口,则只使用Tk()窗口。 (问题还不清楚,但这是我想您要问的问题。)

要解决此问题,您只需删除TopLevel()窗口即可。像这样:

class MyDialog:
    def __init__(self, parent):     #Pop-up textbox

        Label(parent, text="Product EAN").pack()       #pop-up box text

        self.e = Entry(parent, cursor = "xterm", width=25)     #Input textbox
        self.e.pack(padx=40)

        b = Button(parent, text="Submit", command=self.ok, cursor = "hand2")   #Submit button for pop-up box
        b.pack(pady=5)

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