Python Tkinter Menu菜单

  1. Menu小部件用于在python应用程序中创建各种类型的菜单(顶级,下拉和弹出)
  2. 顶级菜单是显示在父窗口标题栏下方的菜单。我们需要创建Menu小部件的新实例,并使用add()方法向其添加各种命令
  3. 语法
me = Menu(top, options)
  1. 可能的选项列表

选项

描述

activebackground

窗口小部件在焦点下时窗口小部件的背景颜色。

activeborderwidth

小部件在鼠标下方时边框的宽度。默认值为1像素。

activeforeground

窗口小部件具有焦点时窗口小部件的字体颜色。

bg

小部件的背景颜色。

bd

小部件的边框宽度。

cursor

鼠标指针在悬停窗口小部件时更改为光标类型。光标类型可以设置为箭头或点。

disabledforeground

禁用时窗口小部件的字体颜色。

font

小部件文本的字体类型。

fg

小部件的前景色。

postcommand

命令可以设置为当mourse悬停菜单时调用的任何函数。

relief

窗口小部件的边框类型。默认类型为RAISED。

image

用于在菜单上显示图像。

selectcolor

用于在选中时显示checkbutton或radiobutton的颜色。

tearoff

默认情况下,菜单中的选项从位置1开始。如果我们设置0,那么选项将从第0位开始。

n. 可按虚线拆下的纸片;tearoff=1 代表显示分隔虚线;teartoff=0 代表取消分隔虚线

title

如果要更改窗口标题,请将此选项设置为窗口标题。

  • 方法
  • “菜单”窗口小部件包含以下方法

方法

描述

add_command(options)

用于将菜单项添加到菜单中。

add_radiobutton(options)

此方法将radiobutton添加到菜单中。

add_checkbutton(options)

此方法用于将复选框添加到菜单中。

add_cascade(options)

用于通过将给定菜单与父菜单相关联来为父菜单创建分层菜单。

add_seperator()

用于将分隔线添加到菜单中。

add(type,options)

用于将特定菜单项添加到菜单中。

delete(startindex,endindex)

用于删除指定范围内存在的菜单项

entryconfig(index,options)

它用于配置由给定索引标识的菜单项。

index(item)

用于获取指定菜单项的索引

insert_seperator(index)

用于在指定的索引处插入分隔符。

invoke(index)

它用于调用与指定索引处给出的选项相关联。

type(index)

它用于获取索引指定的选择类型。

  1. 示例一
  • 创建顶级菜单
  • 可以通过实例化Menu小部件并将菜单项添加到菜单来创建顶级菜单。
from tkinter import *  
  
root = Tk()  
  
def hello():  
    print("hello!")  
  
# create a toplevel menu  
menubar = Menu(root)  
menubar.add_command(label="Hello!", command=hello)  
menubar.add_command(label="Quit!", command=root.quit)  
  
# display the menu  
root.config(menu=menubar)  
  
root.mainloop()
  • 输出

python3 tkinter移动元素 python tkinter menu_悬停


(单击hello Menubutton将在控制台上打印hello,而单击Quit Menubutton将退出python应用程序)

  1. 示例二
from tkinter import Toplevel, Button, Tk, Menu  
  
root = Tk()  

menubar = Menu(root)  
file = Menu(menubar, tearoff=0)  
file.add_command(label="New")  
file.add_command(label="Open")  
file.add_command(label="Save")  
file.add_command(label="Save as...")  
file.add_command(label="Close")  
  
file.add_separator()   # 添加一条分割线
  
file.add_command(label="Exit", command=top.quit)  
  
menubar.add_cascade(label="File", menu=file)  
edit = Menu(menubar, tearoff=0)  
edit.add_command(label="Undo")  
  
edit.add_separator()  
  
edit.add_command(label="Cut")  
edit.add_command(label="Copy")  
edit.add_command(label="Paste")  
edit.add_command(label="Delete")  
edit.add_command(label="Select All")  
  
menubar.add_cascade(label="Edit", menu=edit)  
help = Menu(menubar, tearoff=0)  
help.add_command(label="About")  
menubar.add_cascade(label="Help", menu=help)  
  
root.config(menu=menubar)  
root.mainloop()
  • 输出

python3 tkinter移动元素 python tkinter menu_悬停_02