发布时间:2018-06-05 21:30:08编辑:Run阅读(5030)
OptionMenu 为可选菜单,与 Combox 功能类似
创建 OptionMenu
代码:
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()
结果:
显示的文本自动断行,上下行分别使用了左对齐,右对齐和居中对齐
OptionMenu 的创建需要两个必要的参数,与当前值绑定的变量,通常为一 StringVar 类型;另一个是提供可选的内容列表,由 OptionMenu 的变参数指定
设置 OptionMenu 的显示值
当 OptionMenu 与变量绑定后,直接使用变量赋值的方法即可改变当前的值
代码:
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()
结果:
运行程序,OptionMenu 默认值为"python",打印出的数值也为"python"
如果设置的值不包含在当前的列表中,会是什么结果?如下的代码使用"Tkinter"来测试
代码:
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()
结果:
程序依旧是默认值改变为 Tkinter,打印结果也变为 Tkinter,但 Tkinter 不会添加到OptionMenu 的列表中,也就是说,当选择其它的选项时,Tkinter 的值会丢失
打印 OptionMenu 的值
代码:
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()
结果:
每次点击 OptionMenu 程序打印出上次选中的项值
使用 list 作为 OptionMenu 的选项
代码:
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()
结果:
上一篇: tkinter -- Message
下一篇: tkinter -- Frame
47604
45981
36909
34467
29079
25713
24565
19714
19245
17756
5564°
6155°
5690°
5737°
6703°
5482°
5484°
5988°
5965°
7295°