使用菜单

菜单是由两个元素一个是菜单按钮,另一个是菜单列表。菜单列表是用户点击菜单按钮之后出现的,而菜单按钮是应用中始终显示的内容。

菜单按钮的创建格式为w = tk.Menubutton(parent, option=value, ...)。常用的配置属性有。

  • direction,指示菜单列表出现在菜单按钮的那个方向上。
  • menu,指定菜单按钮点击后对应的菜单列表。
  • textvariable,指定菜单按钮的控制变量,StringVar类型。

菜单列表的创建格式为w = tk.Menu(menubutton, option=value, ...)。菜单列表中的内容可以有文字或图片指令、复选框、单选框以及子菜单选项。菜单列表常用的方法有。

  • .add(kind, coption, ...),向菜单列表中添加指定类型的新元素,元素类型可以是cascade(子菜单列表,相当于调用.add_cascade())、checkbutton(复选框,相当于调用.add_checkbutton())、command(普通菜单项,相当于调用add_command())、radiobutton(单选框,相当于调用.add_radiobutton())、separator(分隔线,相当于调用add_separator())。

创建菜单时的coption配置可以使用以下常用属性。

  • accelerator,快捷键设置。
  • command,点击是要执行的函数。
  • label,菜单文字内容。
  • image,菜单图片内容。
  • menu,子菜单内容。
  • variable,复选框和单选框使用的控制变量设置。

对于macOS来说,菜单一般是显示在顶级窗口上的,也就是桌面顶部的共享菜单栏。这种需求下,可以将菜单的parent设置为顶级窗口,即调用.winfo_toplevel()的返回结果。Windows和Linux中使用这样设置菜单列表,可以获得应用全局菜单栏。