我有一些代码可以打开一个文本框,以便用户可以输入 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 是抓取工具,因此对这个问题来说并不重要。有人可以向我解释一下或帮助我解决问题,因为我不明白为什么下图是其输出。
提前谢谢您。
最佳答案
问题是您正在打开一个 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/