Tkinter编程应知应会(21)-选项菜单和菜单按钮

除了标准菜单以外,有些情况可能还会需要菜单的变体。在Tkinter中就提供了两种常用的类菜单控件:选项菜单(OptionMenu)和菜单按钮(Menubutton)。先看动作演示视频,本文主要说明Text有效控制的OptionMenu和格式控制菜单按钮Format的实现方法。

视频链接

OptionMenu的动作有两个特点:一是可以显示一个下拉列表供用户选择,二是可以将选择结果表示在控件上。关联代码如下:

 

text_enable = StringVar()text_enable.set('Enable ')
enable_menu = OptionMenu(root, text_enable, 'Enable ', 'Disable')enable_menu.grid(row = 0, column = 0, sticky=E+W)

代码中首先构建了一个StringVar类型的变量text_enable,用于保存选择结果。接下来构建一个OptionMenu控件,并指定其控制的变量为text_enable和每个选项的内容。当用户选择某个选项时,这个选项的内容就会被设定到text_enable变量上。

 

接来来为text_enable设定监视函数以控制Text控件的有效状态:

 

 

def var_changed(*args):    if text_enable.get() == 'Enable ':        text.config(state='normal')        text.config(background='#a0ffa0')    else:        text.config(state='disabled')        text.config(background='#efefef')# set variable observer.text_enable.trace_variable('w', var_changed)

菜单按钮首先是一个按钮,它的构建过程和按钮没有什么区别:

 

menu_button = Menubutton(root, text='Format', relief=RAISED)menu_button.grid(row=0, column=4, sticky=E+W)

接下来构建普通的菜单控件并指定菜单项:

 

format_menu = Menu(menu_button, tearoff=0)menu_button.config(menu=format_menu)
for i in range(0, 4):    format_menu.add_command(label="Format" + str(i),                             command=lambda v=i : format(v))

菜单按钮更像一个按钮,用户操作时虽然也可以表示下拉菜单,但通常情况下不会表示选择结果。

 

完整代码可以从以下地址下载:

https://github.com/xueweiguo/TkinterPrimer/blob/master/Sample/21%20OptionMenuAndMenubutton.py

 

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

  • 2
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页

打赏

面向对象思考

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值