如何使我的tkinter下拉菜单在页面之间切换?

2024-04-25 23:49:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一张交互式的伦敦地铁地图,目前我正全力以赴。我试图让我的下拉菜单有车站线的名称(我已经使用贝克洛和中央现在)在视图选项卡,当我点击他们打开的网页,显示该列车线的地图。但是我不能让菜单按钮工作

我试着把它们当作按钮来对待,有人建议我添加一个关于定义容器的部分(我添加了这个部分,但不明白它到底做了什么,这对我的问题没有任何影响)。我不断得到各种各样的错误,如'自我未定义'或'框架未定义'和诸如此类的东西,每次我调整它,我得到另一个错误

    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")

我希望当代码运行并弹出窗口时,它基本上应该只是一个空窗口atm,但在顶部有一个菜单栏,上面有一个视图部分,在该部分应该是所有车站线路的下拉菜单,当单击一个时,它会带您到显示该列车线路地图的页面。目前我甚至无法打开窗口,因为总是有一个错误


Tags: selfframesinitcontainershow错误地图frame