鱼c笔记——Python 的 GUI 编程(十):Tkinter 的组件 Menu、Menubutton 和 OptionMenu

本文介绍了Tkinter的GUI编程,包括创建顶级菜单、下拉菜单、级联菜单和弹出菜单,以及使用Menu、Menubutton、OptionMenu组件。特别讨论了星号(*)在函数调用中的打包和解包作用,详细解释了其在形参和实参中的不同用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tkinter 提供了一个组件 Menu 用来实现顶级菜单,下拉菜单和弹出菜单。

目录

创建一个顶级菜单

实现下拉菜单和级联菜单:

实现弹出菜单

一个带有 Checkbutton 和 Radiobutton 的菜单

选择菜单

星号* 作用

一、星号(*)作为形参,表示调用可变参数函数:

二、星号(*)作为实参时,表示通过解包参数调用函数


创建一个顶级菜单

from tkinter import *

root = Tk()

def callback():
    print("你好")

menubar = Menu(root)
menubar.add_command(label='Hello', command=callback)
menubar.add_command(label='quit', command=root.quit)

root.config(menu=menubar)  #虽然menu已经创建,但是还没添加到root窗口中,所以要调用config方法对root的menu选项相关联
#在IDLE中点退出没反应是因为IDLE也是Tkinter实现的,他们两个共用了一个mainloop(),退出代码重复了,产生了冲突

mainloop()

实现下拉菜单和级联菜单:

from tkinter import *

root = Tk()

def callback():
    print("你好")

menubar = Menu(root)

filemenu = Menu(menubar, tearoff=False)
filemenu.add_command(label='打开', command=callback)
filemenu.add_command(label='保存', command=callback)
filemenu.add_separator()  #添加分割线
filemenu.add_command(label='退出', command=root.quit)
menubar.add_cascade(label='文件', menu=filemenu)   #创建级联菜单,menu选项指定下一级的菜单是什么


editmenu = Menu(menubar, tearoff=False)
editmenu.add_command(label='剪切', command=callback)
editmenu.add_command(label='拷贝', command=callback)
editmenu.add_separator()  #添加分割线
editmenu.add_command(label='粘贴', command=callback)
menubar.add_cascade(label='编辑', menu=editmenu) 

root.config(menu=menubar)
#在IDLE中点退出没反应是因为IDLE也是Tkinter实现的,他们两个共用了一个mainloop(),退出代码重复了,产生了冲突

mainloop()

实现弹出菜单

from tkinter import *

root = Tk()

def callback():
    print("你好")

menubar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值