学习tkinter库的一些心得体会,以及常用案例
图形用户界面应用程序通常提供菜单,菜单包含各种按照主题分组的基本命令。图形用户界面应用程序包括2种类型的菜单。
menu = Menu(master, options,...)
序号 | 属性名称 | 描述 |
---|---|---|
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 | 默认情况下,被“撕下”的菜单标题是其主菜单的名字,不过你也可以通过修改此项的值来修改标题 |
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 参数指定的菜单项的垂直偏移位置
– 该方法的目的是为了让你精确放置相对于当前鼠标的位置弹出菜单
代码如下(示例):
from tkinter import *
from tkinter.filedialog import *
from tkinte