У меня проблемы с размещением меню в приложении tkinter - PullRequest
0 голосов
/ 11 октября 2019

Я предполагаю, что при написании этого кода я использую все окна, затем показываю их при необходимости, я просто запускаю 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) Любая помощь будет высоко ценится, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...