Я предполагаю, что при написании этого кода я использую все окна, затем показываю их при необходимости, я просто запускаю tkinter и выхожу из учебника, чтобы придать ему нужную форму. У меня есть несколько окон, но я показываю код только для первого, в котором я хочу, чтобы меню было включено, поэтому у меня есть предложение try, кроме пункта в рамке показа. Я нашел похожий код в другом вопросе stackoverflow с той же проблемой, что и у меня, но исправление не работает, и я не знаю, что делать. Пожалуйста помоги. Вот мой код:
class TradingBotapp(tk.Tk):
def __init__(self,*args,**kwargs):
tk.Tk.__init__(self,*args,**kwargs)
container = tk.Frame(self)
container.pack(side='top',fill='both',expand= True)
container.grid_rowconfigure(0,weight = 1)
container.grid_columnconfigure(0,weight = 1)
self.frames = {}
for F in (StartPage,Login,Register,Main_Page,InitalSetup):
frame = F(container,self)
self.frames[F] = frame
frame.grid(row=0,column=0,sticky='nsew')
self.show_frame(Main_Page)
def show_frame(self,cont):
frame = self.frames[cont]
try:
self["menu"] = frame.menu
except Exception as e:
print(e)
frame.tkraise()
class Main_Page(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self,parent)
self.init_window(controller)
label = tk.Label(self, text='Main Page', font = LARGE_FONT).pack()
def init_window(self,controller):
StockWatchList = ['Dave','Pam','Girl','Guy','Boy']
self.grid(column=0,row=0)
menu = tk.Menu(self)
file = tk.Menu(menu)
file.add_command(label='Exit')
StockWatch = tk.Menu(menu)
for stock in StockWatchList:
StockWatch.add_command(label=stock)
self.menu
app = TradingBotapp()
app.mainloop()
Исправление, которое было в вопросе stackoverflow, заключалось в том, чтобы поместить self["menu"] = frame.menu
в рамку показа и поместить self.menu
там, где вы хотите показать это, а не помещать, я думаю self.master.config(menu=menu)
Любая помощь будет высоко ценится, спасибо!