Tkinter Menu——自动化程序的可视化开发菜单详解

Tkinter Menu——自动化程序的可视化开发菜单详解带你走进 机器人时代 Discover 点击上面蓝色文字 关注我们 Tkinter Menu 可以说是 GUI 中 精髓所在 它以可视化的方式将一系列的 功能选项卡 进行分组

欢迎大家来到IT世界,在知识的湖畔探索吧!

带你走进 @ 机器人时代

Discover 点击上面蓝色文字关注我们

Tkinter Menu——自动化程序的可视化开发菜单详解

欢迎大家来到IT世界,在知识的湖畔探索吧!


Tkinter Menu
可以说是 GUI 中“精髓所在”,它以可视化的方式将一系列的“功能选项卡”进行分组。

Tkinter Menu 控件提供了三种类型的菜单,分别是:topleve(主目录菜单)、pull-down(下拉式菜单)、pop-up(弹出式菜单,或称快捷式菜单)。

先来看代码:

欢迎大家来到IT世界,在知识的湖畔探索吧!

欢迎大家来到IT世界,在知识的湖畔探索吧!from tkinter import * import tkinter.messagebox import tkinter as tk w = tk.Tk() w.title("工作机器人时代-微信公众平台") w.geometry('500x190+710+410') w.iconbitmap('1.ico') w.resizable(False, False) def md(): tkinter.messagebox.showinfo("主菜单栏", "你正在使用主菜单栏") # 创建一个顶级菜单 m = Menu(w) # 使用 add_command()命令创建菜单 m.add_command(label="新建", command=md) m.add_command(label="编辑", command=md) m.add_command(label="高级", command=md) m.add_command(label="配置", command=md) m.add_command(label="帮助", command=md) # 显示菜单 w.config(menu=m) w.mainloop()

运行后得到:

Tkinter Menu——自动化程序的可视化开发菜单详解

如果我们要创建下拉菜单,可以输入以下代码:

欢迎大家来到IT世界,在知识的湖畔探索吧!from tkinter import * import tkinter as tk w = tk.Tk() w.title("工作机器人时代-微信公众平台") w.geometry('500x190+710+410') w.iconbitmap('1.ico') w.resizable(False, False) # 创建一个顶级菜单 m = Menu(w) #新增子菜单 u = Menu (m, tearoff=False) # 使用 add_command()命令创建菜单 m.add_cascade (label="文件",menu=u) m.add_cascade (label="编辑") m.add_cascade (label="高级") m.add_cascade (label="配置") m.add_cascade (label="帮助") #新增"文件"菜单的菜单项 u.add_command (label="新建文件",accelerator="W") u.add_command (label="新建文件夹", accelerator="O") u.add_command (label="保存文件",accelerator="S") # 添加一条分割线 u.add_separator () u.add_command (label="退出系统",accelerator="Q",command=w. quit) # 显示菜单 w.config(menu=m) w.mainloop()

运行后得到:

Tkinter Menu——自动化程序的可视化开发菜单详解

点击文件,弹出下拉菜单,点击退出系统,程序关闭。下面我们增加代码,让鼠标点击新建文件或按快捷键Ctrl+w键的时候弹出对话框:

欢迎大家来到IT世界,在知识的湖畔探索吧!from tkinter import * import tkinter.messagebox import tkinter as tk w = tk.Tk() w.title("工作机器人时代-微信公众平台") w.geometry('500x190+710+410') w.iconbitmap('1.ico') w.resizable(False, False) def md(): tkinter.messagebox.showinfo("新消息", "你正点击新建文件") def md1(x): #print(x) tkinter.messagebox.showinfo("新消息", "你正按快捷键新建文件命令") # 创建一个顶级菜单 m = Menu(w) #新增子菜单 u = Menu (m, tearoff=False) # 使用 add_command()命令创建菜单 m.add_cascade (label="文件",menu=u) m.add_cascade (label="编辑") m.add_cascade (label="高级") m.add_cascade (label="配置") m.add_cascade (label="帮助") #新增"文件"菜单的菜单项 u.add_command (label="新建文件",command=md,accelerator="W") u.add_command (label="新建文件夹", accelerator="O") u.add_command (label="保存文件",accelerator="S") # 添加一条分割线 u.add_separator () u.add_command (label="退出系统",accelerator="Q",command=w. quit) #捕获键盘事件 w.bind ('<Control-w>',md1) w.bind ('<Control-W>',md1) # 显示菜单 w.config(menu=m) w.mainloop()

这里要注意,当键盘按键的时候会返回函数一个参数,因此定义函数的时候要写成def md1(x):而不能写成def md1(),运行后效果如下:

Tkinter Menu——自动化程序的可视化开发菜单详解

如果我们想在窗体界面右键点击后弹出一个菜单,在w.config(menu=m)前面插入以下代码:

欢迎大家来到IT世界,在知识的湖畔探索吧!def fc(): tkinter.messagebox.showinfo("新消息", "您通过弹出菜单执行了命令") mu = tk.Menu(w, tearoff=False)#定义弹出的菜单 mu.add_command(label="复制", command=fc) mu.add_command(label="粘贴", command=fc) mu.add_command(label="剪切", command=fc) def cod(event): # 使用 post()在指定的位置显示弹出菜单 mu.post(event.x_root, event.y_root) w.bind("<Button-3>", cod)#鼠标点击右键

用fc函数定义弹出菜单中的按钮事件,用cod函数来定义右键点击后显示弹出菜单:

Tkinter Menu——自动化程序的可视化开发菜单详解

如果希望在窗体的任意位置布局一个按钮,当鼠标点击时弹出操作菜单,参考以下代码:

欢迎大家来到IT世界,在知识的湖畔探索吧!
from tkinter import * import tkinter as tk w = tk.Tk() w.title("工作机器人时代-微信公众平台") w.geometry('500x190+710+410') w.iconbitmap('1.ico') w.resizable(False, False) #创建一个菜单按钮 mb=Menubutton(w, text='点击进行操作', relief='solid') # 设置位置(布局) mb.grid(padx=35, pady=35) #添加菜单,使用 tearoff 参数不显示分割线 fm=Menu(mb,tearoff = False) fm.add_command(label='新建') fm.add_command(label='删除') fm.add_command(label='复制') fm.add_command(label='保存') # 显示菜单,将菜单命令绑定在菜单按钮对象上 mb.config(menu=fm) w.mainloop()

运行后得到如下效果:

Tkinter Menu——自动化程序的可视化开发菜单详解

我们来看看Menu菜单控件都有哪些属性:

activebackground

设置活动背景色

activeborderwidth

设置活动边框宽度

activeforeground

设置活动前景色

bg

设置背景色

bd

设置边框宽度

cursor

光标的显示样式

disabledforeground

菜单项的状态为DISABLED时的文字颜色

font

设置字体

fg

设置前景色,也就是文字的颜色

postcommand

点击该菜单时,调用回调函数。

relief

设置3D效果

selectcolor

如果选中显示selectcolor设置的颜色

tearoff

将每个菜单分离出去,单独形成一个子窗口

title

设置tear-off子窗口的标题

除了这些属性,还有方法:

add_cascade(options)

添加一个父菜单,将一个指定的子菜单,通过参数与父菜单连接,从而创建一个下拉菜单

add_checkbutton(options)

添加一个多选按钮的菜单项

add_command(options)

添加一个普通的命令菜单项

add_radiobutton(options)

添加一个单选按钮的菜单项

add_separator(options)

添加一条分割线

add(add(itemType, options))

添加菜单项
此处 itemType 参数:
“command”
“cascade”
“checkbutton”
“radiobutton”
“separator”
可以使用 options 选项来设置菜单其他属性

delete(index1, index2=None)

1. 删除 index1 ~ index2(包含)的所有菜单项
2. 如果忽略 index2 参数,则删除 index1 指向的菜单项

entrycget(index, option)

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

entryconfig(index, options)

设置指定菜单项的选项

insert(index, itemType, options)

插入指定类型的菜单项到 index 参数指定的位置,类型可以是:
“command”
“cascade”
“checkbutton”
“radiobutton” 或 “separator” 中的一个,或者也可以使用 insert_类型() 形式来, 比如 insert_cascade(index, options)

invoke(index)

调用 index 指定的菜单项相关联的方法

post(x, y)

在指定的位置显示弹出菜单

type(index)

获得 index 参数指定菜单项的类型

unpost()

移除弹出菜单

yposition(index)

返回 index 参数指定的菜单项的垂直偏移位置

index(index)

返回与 index 参数相应的选项的序号

Menu 控件options 参数:

accelerator

1. 设置菜单项的快捷键,会显示在菜单项目的右边
2. 注意,必须通过按键绑定来实现

command

选择菜单项时执行的 callback 函数

label

定义菜单项内的文字

menu

此属性与 add_cascade() 方法一起使用,用来新增菜单项的子菜单项

selectcolor

指定当菜单项显示为单选按钮或多选按钮时选择中标志的颜色

state

定义菜单项的状态
可以是 normal、active 或 disabled

onvalue/offvalue

默认情况下,variable 选项设置为 1 表示选中状态

tearoff

设为 True,在菜单项的上面就会显示一个可选择的分隔线

underline

设置菜单项中字符的下画线

value

设置按钮菜单项的值,通过该值与 variable 选项的值对比,即可判断用户选中了哪个按钮

variable

当菜单项是单选按钮或多选按钮时与之关联的变量


坚持学习,
每天都能进步一点!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/124414.html

(0)
上一篇 43分钟前
下一篇 1分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信