我有一些打开文本框的代码,因此用户可以输入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是抓取工具,因此对该问题不重要。有人可以向我解释或帮助解决此问题,因为我看不到为什么下面的图片是该图片的输出。
谢谢。
答案 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()