首页 > 解决方案 > 是否有不同的方法来创建菜单栏?

问题描述

我遇到了两种不同的方法来创建菜单栏


import tkinter as tk

window = tk.Tk()

menu_bar = tk.Menu() ■
window.config(menu = menu_bar) #2

window.mainloop()

import tkinter as tk
from tkinter import Menu

window = tk.Tk()

menu_bar = Menu(window) ■
window.configure(menu = menu_bar)

window.mainloop()

问题:这些代码行之间有什么区别?我的意思是,如果它们相同,为什么语法不同?(我已将引用的代码行标记为■)。从 tkinter导入菜单如何影响代码行?

标签: pythontkinter

解决方案


这些代码行之间有什么区别?

它做同样的事情(除了导入。使用from tkinter import Menu,您只是从 导入Menu,没有其他内容tkinter。但在第一个示例中,您正在导入整体tkinter,您可以引用tkinter.Menuas tk.Menu。但在第二个示例中,您只需要说Menu.

请注意,在第二个示例中,您仍然可以使用tk.Menu以及Menu. 因此,第二次导入变得无用,可以删除。最好遵循第一个示例。


正如 AST 所提到的,如果你说Menu(),一个现有的实例Tk()将作为主参数隐式传递。但是,如果您说Menu(win),则表明您正在通过win。始终建议在parent使用多个窗口时显式传递参数,以免引起混淆。


推荐阅读