【问题标题】:Python Function: Tkinter Menu and Menu itemsPython 函数:Tkinter 菜单和菜单项
【发布时间】:2021-01-04 02:49:54
【问题描述】:

我想使用一个函数创建多个菜单及其对应的菜单项,以避免重复我的代码。但是,当我尝试调用该函数时,它会覆盖先前调用的函数。示例代码如下:

from tkinter import Tk, Menu

simple_window = Tk()

def add_menu(simple_window, menu_label, item1="", item2=""):
    # Creating a menu bar
    menu_bar = Menu(simple_window)
    simple_window.config(menu=menu_bar)

    # create menu and add menu items
    file_menu = Menu(menu_bar)              # create menu
    file_menu.add_command(label=item1)      # add menu item
    file_menu.add_command(label=item2)# add menu item
    menu_bar.add_cascade(label=menu_label, menu=file_menu) 


add_menu(simple_window, "File", "New", "Exit")
add_menu(simple_window, "About", "Help")

simple_window.mainloop()

我在这里缺少什么?我将如何解决这个问题?

【问题讨论】:

    标签: python python-3.x function tkinter


    【解决方案1】:

    您一次又一次地重新创建 menu_bar,而不是只创建一次。

    这是您更正后的代码:

    from tkinter import Tk, Menu
    
    
    def add_menu(menu_label, item1="", item2=""):
        # Creating a menu bar
        
    
        file_menu = Menu(menu_bar, tearoff=0)              # create menu
        file_menu.add_command(label=item1, command=None)      # add menu item
        file_menu.add_command(label=item2, command=None)# add menu item
        menu_bar.add_cascade(label=menu_label, menu=file_menu) 
    
    
    simple_window = Tk()
    
    menu_bar = Menu(simple_window)
    simple_window.config(menu = menu_bar)
    
    add_menu( "File", "New", "Exit")
    add_menu("About", "Help")
    add_menu("edit", "Settings", "Exit")
    
    simple_window.mainloop()
    
    

    【讨论】:

    • 天哪!非常感谢你!这很有帮助@JacksonPro
    猜你喜欢
    • 2012-10-10
    • 2019-03-14
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 2012-07-18
    • 1970-01-01
    相关资源
    最近更新 更多