tkinter库 -- 菜单Menu

GUI界面设计 – tkinter库应用 – 菜单组件Menu


文章目录

  • GUI界面设计 -- tkinter库应用 -- 菜单组件Menu
  • 前言
  • 一、Menu菜单组件
  • 二、语法
    • 1.创建语法
    • 2.常用属性
    • 3.方法
    • 4.菜单示例
    • 5.综合应用示例
  • 总结


前言

学习tkinter库的一些心得体会,以及常用案例


一、Menu菜单组件

图形用户界面应用程序通常提供菜单,菜单包含各种按照主题分组的基本命令。图形用户界面应用程序包括2种类型的菜单。

  • 主菜单:提供窗体的菜单系统。通过单击可下拉出子菜单,选择命令可执行相关的操作。常用的主菜单通常包括:文件、编辑、视图、帮助等。
  • 上下文菜单(也称为快捷菜单):通过鼠标右击某对象而弹出的菜单,一般为与该对象相关的常用菜单命令。例如:剪切、复制、粘贴等。

二、语法

1.创建语法

menu = Menu(master, options,...)
  • master: 框架的父容器。
  • options: 可选项,即该菜单的可设置的属性。这些选项可以用键-值的形式设置,并以逗号分隔。

2.常用属性

序号 属性名称 描述
1 activebackground 设置当 Menu 处于 “active” 状态(通过 state 选项设置状态)的背景色
2 activeborderwidth 设置当 Menu 处于 “active” 状态(通过 state 选项设置状态)的边框宽度
3 activeforeground 设置当 Menu 处于 “active” 状态(通过 state 选项设置状态)的前景色
4 background 设置背景颜色
5 bg 跟 background 一样
6 borderwidth 指定边框宽度
7 bd 跟 borderwidth 一样
8 cursor 指定当鼠标在 Menu 上飘过的时候的鼠标样式
9 disabledforeground 指定当 Menu 处于 “disabled” 状态的时候的前景色
10 font 指定 Menu 中文本的字体
11 foreground 设置 Menu 的前景色
12 fg 跟 foreground 一样
13 postcommand 将此选项与一个方法相关联,当菜单被打开的时候该方法将自动被调用
14 relief 1. 指定边框样式 2. 默认值是 “flat” 3. 另外你还可以设置 “sunken”,“raised”,“groove” 或 “ridge”
15 selectcolor 指定当菜单项显示为单选按钮或多选按钮时选择中标志的颜色
16 tearoff 1. 默认情况下菜单可以被“撕下”(点击 IDLE 菜单上边的 --------- 试试)2. 将该选项设置为 Flase 关闭这一特性
17 tearoffcommand 如果你希望当用户“撕下”你的菜单时通知你的程序,那么你可以将该选项与一个方法相关联,那么当用户“撕下”你的菜单时,Tkinter 会带着两个参数去调用你的方法(一个参数是当前窗口的 ID,另一个参数是承载被“撕下”的菜单的窗口 ID)
18 title 默认情况下,被“撕下”的菜单标题是其主菜单的名字,不过你也可以通过修改此项的值来修改标题

3.方法

add(type, **options)

– type 参数指定添加的菜单类型,可以是:“command”,“cascade”,“checkbutton”,“radiobutton” 或 “separator”
– 还可以通过 options 选项设置菜单的属性,下表列举了 options 可以使用的选项和具体含义:

add_cascade(**options)

– 添加一个父菜单
– 相当于 add(“cascade”, **options)

add_checkbutton(**options)

– 添加一个多选按钮的菜单项
– 相当于 add(“checkbutton”, **options)

add_command(**options)

– 添加一个普通的命令菜单项
– 相当于 add(“command”, **options)

add_radiobutton(**options)

– 添加一个单选按钮的菜单项
– 相当于 add(“radiobutton”, **options)

add_separator(**options)

– 添加一条分割线
– 相当于 add(“separator”, **options)

delete(index1, index2=None)

– 删除 index1 ~ index2(包含)的所有菜单项
– 如果忽略 index2 参数,则删除 index1 指向的菜单项
– 注意:对于一个被“撕下”的菜单,你无法使用该方法

entrycget(index, option)

– 获得指定菜单项的某选项的值

entryconfig(index, **options)

– 设置指定菜单项的选项
– 选项的参数及具体含义请参考上方 add() 方法

entryconfigure(index, **options)

– 跟 entryconfig() 一样

index(index)

– 返回与 index 参数相应的选项的序号(例如 e.index(“end”))

insert(index, itemType, **options)

– 插入指定类型的菜单项到 index 参数指定的位置
– itemType 参数指定添加的菜单类型,可以是:“command”,“cascade”,“checkbutton”,“radiobutton” 或 “separator”
– 选项的参数及具体含义请参考上方 add() 方法

insert_cascade(index, **options)

– 在 index 参数指定的位置添加一个父菜单
– 相当于 insert(“cascade”, **options)

insert_checkbutton(index, **options)

– 在 index 参数指定的位置添加一个多选按钮
– 相当于 insert(“checkbutton”, **options)

insert_command(index, **options)

– 在 index 参数指定的位置添加一个普通的命令菜单项
– 相当于 insert(“command”, **options)

insert_radiobutton(index, **options)

– 在 index 参数指定的位置添加一个单选按钮
– 相当于 insert(“radiobutton”, **options)

insert_separator(index, **options)

– 在 index 参数指定的位置添加一条分割线
– 相当于 insert(“separator”, **options)

invoke(index)

– 调用 index 指定的菜单项相关联的方法
– 如果是单选按钮,设置该菜单项为选中状态
– 如果是多选按钮,切换该菜单项的选中状态

post(x, y)

– 在指定的位置显示弹出菜单
– 绑定鼠标右键点击事件

type(index)

– 获得 index 参数指定菜单项的类型
– 返回值可以是:“command”,“cascade”,“checkbutton”,“radiobutton” 或 “separator”

unpost()

– 移除弹出菜单

yposition(index)

– 返回 index 参数指定的菜单项的垂直偏移位置
– 该方法的目的是为了让你精确放置相对于当前鼠标的位置弹出菜单

4.菜单示例

tkinter库 -- 菜单Menu_第1张图片

代码如下(示例):

from tkinter import *
from tkinter.filedialog import *
from tkinte

你可能感兴趣的:(python,python)