Как мне получить выпадающее меню в tkinter для переключения между страницами? - PullRequest
0 голосов
/ 24 сентября 2019

Я делаю интерактивную карту лондонского метрополитена, и в настоящее время я на грани.Я пытаюсь получить в раскрывающемся меню имена линий станций (сейчас я использовал Bakerloo и Central) на вкладке «Вид», и когда я нажимаю на них, они открывают страницу, которая показывает карту этой линии поездов.,Но я не могу заставить кнопки меню работать.

Я пытался рассматривать их как кнопки, и кто-то предложил добавить раздел об определении контейнера (который я добавил, но не понимаю, что он делаетдействительно, это не имело никакого значения к моей проблеме).Я продолжаю получать различные ошибки, такие как «я не определен» или «кадр не определен» и тому подобное, и каждый раз, когда я его настраиваю, я получаю еще одну ошибку.

    menu = Menu(self.master) 
    self.master.config(menu=menu) 
    view = Menu(menu) 
    view.add_command(label="Bakerloo Line", command=lambda : controller.show_frame(Bakerloo)) 
    view.add_command(label="Central Line", command=lambda : controller.show_frame(Central)) 

    container = 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 (HomePage, Bakerloo, Central):
        frames = F(container, self)
        self.frames[F] = frame
        frame.grid(row=0, column=0, sticky="nsew")
    self.show_frame(HomePage)

def show_frame(self, name):
    frame = self.frames[name]
    frame.tkraise()

class HomePage(Frame):
    def __init__(self, parent, controller):
        Frame.__init__(self, parent)
        label = Label(self, text="Home")


class Bakerloo(Frame):
        def __init__(self, parent, controller):
            Frame.__init__(self, parent)
            label = Label(self, text="Bakerloo")

Я ожидаю, когда код будет запущен ивсплывающее окно, оно в основном должно быть пустым атмом окна, но вверху есть строка меню с разделом «Вид», и в этом разделе должно быть раскрывающееся меню всех линий станций, и при нажатии на него вы переходите кстраница, показывающая карту этой железнодорожной линии.В настоящее время я даже не могу открыть окно, потому что всегда есть ошибка.

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