前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tkinter -- OptionMenu

tkinter -- OptionMenu

作者头像
py3study
发布2018-08-03 10:36:05
1.8K0
发布2018-08-03 10:36:05
举报
文章被收录于专栏:python3python3

OptionMenu 为可选菜单,与 Combox 功能类似

创建 OptionMenu

代码:

代码语言:javascript
复制
import tkinter as tk

root = tk.Tk()
v = tk.StringVar(root)
v.set('python')
om = tk.OptionMenu(root, v, 'python', 'php', 'java', 'c', 'javascript')
om.pack()
root.mainloop()

结果:

444.gif
444.gif

显示的文本自动断行,上下行分别使用了左对齐,右对齐和居中对齐

OptionMenu 的创建需要两个必要的参数,与当前值绑定的变量,通常为一 StringVar 类型;另一个是提供可选的内容列表,由 OptionMenu 的变参数指定

设置 OptionMenu 的显示值

当 OptionMenu 与变量绑定后,直接使用变量赋值的方法即可改变当前的值

代码:

代码语言:javascript
复制
import tkinter as tk

root = tk.Tk()
v = tk.StringVar(root)
v.set('python')
# 创建一个OptionMenu控件
om = tk.OptionMenu(root, v, 'python', 'php', 'java', 'c', 'javascript')
om.pack()
print(v.get())
root.mainloop()

结果:

blob.png
blob.png

运行程序,OptionMenu 默认值为"python",打印出的数值也为"python"

如果设置的值不包含在当前的列表中,会是什么结果?如下的代码使用"Tkinter"来测试

代码:

代码语言:javascript
复制
import tkinter as tk

root = tk.Tk()
v = tk.StringVar(root)
v.set('tkinter')
# 创建一个OptionMenu控件
om = tk.OptionMenu(root, v, 'python', 'php', 'java', 'c', 'javascript')
om.pack()
print(v.get())
root.mainloop()

结果:

blob.png
blob.png

程序依旧是默认值改变为 Tkinter,打印结果也变为 Tkinter,但 Tkinter 不会添加到OptionMenu 的列表中,也就是说,当选择其它的选项时,Tkinter 的值会丢失

打印 OptionMenu 的值

代码:

代码语言:javascript
复制
import tkinter as tk

root = tk.Tk()
v = tk.StringVar(root)
v.set('tkinter')
def printoption(event):
    print(v.get())

# 创建一个OptionMenu控件
om = tk.OptionMenu(root, v, 'python', 'php', 'java', 'c', 'javascript')
om.bind('<Button-1>', printoption)
om.pack()
root.mainloop()

结果:

blob.png
blob.png

每次点击 OptionMenu 程序打印出上次选中的项值

使用 list 作为 OptionMenu 的选项

代码:

代码语言:javascript
复制
import tkinter as tk

root = tk.Tk()
v = tk.StringVar(root)
Lang = ['python', 'php', 'java', 'c', 'javascript']
v.set('tkinter')
def printoption(event):
    print(v.get())


# 创建一个OptionMenu控件
om = tk.OptionMenu(root, v, tuple(Lang))
om.bind('<Button-1>', printoption)
om.pack()
root.mainloop()

结果:

blob.png
blob.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档