【问题标题】:Auto-adjusting size for Tkinter frameTkinter 帧的自动调整大小
【发布时间】:2011-03-31 12:29:02
【问题描述】:

我正在开发一个 gui,我想知道如何调整框架菜单的大小,以便让它们占据框架的所有水平空间。

问题已经改变:现在,当窗口处于正常大小时,菜单按钮可以正常工作,但是当我调整它的大小时,菜单按钮会落在窗口中间。我怎样才能让它们粘在框架的顶部?

rgds,

【问题讨论】:

    标签: python menu tkinter


    【解决方案1】:

    您的问题缺乏足够的细节来给您一个好的答案。您是否通过将菜单按钮放在框架中来创建菜单栏?如果是这样,那是错误的做法。创建一个菜单小部件并将其分配给主窗口的菜单属性,您将得到正常运行的标准菜单。

    这是一个简单的例子:

    import Tkinter
    
    root = Tkinter.Tk()
    menubar = Tkinter.Menu(root)
    root.config(menu=menubar)
    
    fileMenu = Tkinter.Menu(menubar, tearoff=False)
    editMenu = Tkinter.Menu(menubar, tearoff=False)
    
    menubar.add_cascade(label="File",underline=0, menu=fileMenu)
    menubar.add_cascade(label="Edit",underline=0, menu=editMenu)
    
    fileMenu.add_command(label="Open...", underline=0)
    fileMenu.add_command(label="Save", underline=0)
    fileMenu.add_separator()
    fileMenu.add_command(label="Exit", underline=1)
    
    editMenu.add_command(label="Cut", underline=2)
    editMenu.add_command(label="Copy", underline=0)
    editMenu.add_command(label="Paste", underline=0)
    
    root.mainloop()
    

    【讨论】:

    • 感谢您的提示。我的主窗口是一个框架,它有菜单属性吗?
    • @Bruno:“菜单”是顶层窗口的属性。每个 Tkinter 应用程序至少(通常只有)一个。这通常称为“根”。我将在我的答案中添加一个示例,希望能够澄清。
    • 谢谢,我试过你的方法,效果很好。只有一个小问题:当我调整窗口大小时,菜单停留在菜单栏的左侧,是否有可能让它们占据所有水平空间(好奇心)?
    • @Bruno:不,这是不可能的,你也不想那样做。您的菜单应与标准菜单行为一致。您的用户会感谢您。如果你真的需要你描述的行为,你唯一的选择是使用框架和菜单按钮。如果您尝试创建人们想要使用的 GUI,我不推荐这种方法。
    • 非常感谢,我会听从你的建议的!
    猜你喜欢
    • 2016-06-29
    • 2012-11-07
    • 1970-01-01
    • 2014-05-15
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多