在tkinter中,我要逐步处理多个页面,每个页面应该具有唯一的Listbox
,其中将填充唯一的信息。
我的问题是“列表框”在其他页面上显示了我的初始页面的信息。即使我将其他页面上的列表框完全删除,第一页上的“列表框”仍会显示。
这基本上是我第一次对任何东西使用类,所以我不确定为什么它不起作用。这些基本上都是从YouTube的操作方法复制而来的,我正在尝试将其调整为所需的功能。
class Uploader(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs) #sets up tk window stuff
container = tk.Frame(self)
container.grid(row = 0, column = 0)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (Gr7, Gr8, Gr9): #put new pages on this
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column = 0, sticky = "nsew")
self.show_frame(Gr7)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class Gr7(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self, parent)
lb = tk.Listbox(width=30, height=15)
lb.insert('end', *homelist)
lb.grid(row = 1, column = 0)
class Gr8(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self, parent)
lb1 = tk.Listbox(width=30, height=15)
lb1.insert('end', *homelist1)
lb1.grid(row = 1, column = 0)
class Gr9(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self, parent)
lb2 = tk.Listbox(width=30, height=15)
lb2.insert('end', *homelist2)
lb2.grid(row = 1, column = 0)
答案 0 :(得分:1)
您没有指定哪个窗口小部件应包含列表框,因此所有的列表框都以根窗口作为其主窗口。因为您将它们全部放在同一行和同一列中,所以只能看到一个列表框。
要解决此问题,并且作为一个很好的一般经验法则,您在创建小部件时应始终明确提供母版:
Rails.application.routes.default_url_options[:host] = 'localhost:3000'