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

标签 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?

提前谢谢您。

最佳答案

问题是您正在打开一个 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()

关于python - 打开文本框时出现第二个弹出框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56271095/

相关文章:

python - 当下游任务定义依赖于上游结果时如何设置 DAG

python - 了解 numpy 中奇怪的 bool 二维数组索引行为

python - 在 Amazon Linux 上安装 Tkinter

python - 基于第一行合并多维 NumPy 数组

Python - 从 Google Finance 中提取指数数据

python - 如何使用新列中重叠项目的输出映射两个数据框?

python - 如何在 python 中创建快速幻灯片?

python - 将图像绘制到 tkinter Canvas

python - 尝试在 Azure 中使用 matplotlib 时出现 "ModuleNotFoundError: No module named ' tkinter '"

python - tkinter py2app 应用程序不会关闭