1.下拉式列表OptionMenu
建立基本的OptionMenu
OptionMenu可以翻译为下拉式列表,用户可以从中选择一项,它的构造方法如下。
OptionMenu(父对象,options,*value)
其中,*value是一系列下拉列表,后续通过实例讲解。
样例:建立OptionMenu,这个下拉表中有三个数据,分别是Python、Java、C。
from tkinter import *
root=Tk()
root.title("ch3_1")
root.geometry("300x180")
var=StringVar(root)
optionmenu=OptionMenu(root,var,"Python","Java","C")
optionmenu.pack()
root.mainloop()
image.png
使用元组建立列表项目
当列表中项目较多时,可以将列表建在元组内,再将元组数据放入OptionMenu()构造方法内。
样例:使用元组存储列表项目。
from tkinter import *
root=Tk()
root.title("ch3_2")
root.geometry("300x180")
omTuple=("Python","Java","C")
var=StringVar(root)
optionmenu=OptionMenu(root,var,*omTuple)
optionmenu.pack()
root.mainloop()
建立默认选项set()
我们可以使用set()方法为这个OptionMenu建立默认选项。
样例:使用set()方法建立默认选项。
from tkinter import *
root=Tk()
root.title("ch3_3")
root.geometry("300x180")
omTuple=("Python","Java","C")
var=StringVar(root)
var.set("Python")
optionmenu=OptionMenu(root,var,*omTuple)
optionmenu.pack()
root.mainloop()
image.png
上述程序设定了默认值,但既然使用了元组建立列表项目,可以使用元组变量名称+索引
方法设置默认选项。
var.set(omTuple[0])
获得选项内容get()
可以使用get()方法获得选项内容。
样例:获得OptionMenu目前选项的内容,这个程序中提供了Print按钮,单击
此按钮可以在Python Shell窗口中列出所选的内容。
from tkinter import *
def printSelection():
print("The selection is : ",var.get() )
root=Tk()
root.title("ch3_3")
root.geometry("300x180")
omTuple=("Python","Java","C")
var=StringVar(root)
var.set("Python")
optionmenu=OptionMenu(root,var,*omTuple)
optionmenu.pack(pady=10)
btn=Button(root,text="Print",command=printSelection)
btn.pack(pady=10,anchor=S,side=BOTTOM)
root.mainloop()
image.png
2.组合框Combobox
建立Combobox
在Combobox()构造方法中,可以使用value参数建立选项内容。
样例:建立一个Combox。
from tkinter import *
from tkinter.ttk import *
root=Tk()
root.title("ch3_5")
root.geometry("300x120")
var=StringVar()
cb=Combobox(root,textvariable=var,
value=("Python","Java","C#","C"))
cb.pack(pady=10)
root.mainloop()
image.png
若是选项很多,Combox()方法的参数value一般是独立在Combox()外处理,可以
参考下例实例。
from tkinter import *
from tkinter.ttk import *
root=Tk()
root.title("ch3_5")
root.geometry("300x120")
var=StringVar()
cb=Combobox(root,textvariable=var)
cb["value"]=("Python","Java","C#","C")
cb.pack(pady=10)
root.mainloop()
设置默认选项current()
Combobox创建完成后,可以使用current()方法建立默认选项。
样例:设置元组索引为0的元素Python为默认选项。
from tkinter import *
from tkinter.ttk import *
root=Tk()
root.title("ch3_7")
root.geometry("300x120")
var=StringVar()
cb=Combobox(root,textvariable=var)
cb["value"]=("Python","Java","C#","C")
cb.current(0)
cb.pack(pady=10)
root.mainloop()
image.png
在前面建立Combobox过程中有textvariable=var,有了它就可以利用
var.set("xx")方式建立默认选项,当然对于这个实例而言,使用curent()方法较为便利。
var.set("Python")
获得目前选项get()
在前面建立Combobox过程中有textvariable=var,可以使用var.get()获得目前选项内容。
样例:增加Print按钮,当单击此按钮时可以在Python Shell窗口中打印选项。
from tkinter import *
from tkinter.ttk import *
def printSelection():
print(var.get())
root=Tk()
root.title("ch3_9")
root.geometry("300x120")
var=StringVar()
cb=Combobox(root,textvariable=var)
cb["value"]=("Python","Java","C#","C")
cb.current(0)
cb.pack(pady=10)
btn=Button(root,text="Print",command=printSelection)
btn.pack(pady=10,anchor=S,side=BOTTOM)
root.mainloop()
image.png
绑定Combobox
当Combobox中的选项有变时,会产生虚拟<ComboboxSelected>事件,也可以
使用这个特性将此事件绑定处理方法。
样例:同步Combobox和Label的内容。
from tkinter import *
from tkinter.ttk import *
def comboSelection(event):
labelVar.set(var.get())
root=Tk()
root.title("ch3_10")
root.geometry("300x120")
var=StringVar()
cb=Combobox(root,textvariable=var)
cb["value"]=("Python","Java","C#","C")
cb.bind("<<ComboboxSelected>>",comboSelection)
cb.pack(side=LEFT,pady=10,padx=10)
labelVar=StringVar()
lableVar=StringVar()
label=Label(root,textvariable=labelVar)
labelVar.set(var.get())
label.pack(side=LEFT)
root.mainloop()
image.png
网友评论