Tkinter的Listbox控件是个选项框,主要是用来在给定的选项中选择一个
使用方法
创建选项框Listbox
和其他控件的创建方法一样,直接创建即可,命名为Lb
Lb=tk.Listbox(root)
Lb.pack()
在选项框中加入选项
可以边创建边添加,即利用listvariable确定要添加的元素,注意这里需要用到tk.StringVar()函数声明一下添加的为字符串
var=tk.StringVar()
var.set=((1,2,3,4))
Lb = tk.Listbox(root, listvariable=var)
也可以在创建了选项框以后再添加,使用Lb.insert()函数即可
Lb.insert(1,'hello') #在第1个位置后面添加一个hello选项
返回当前Listbox选项的索引
在当前的选项框中选择一个选项,返回该选项的索引
Lb.curselection()
返回当前Listbox选项的内容
在当前的选项框中选择一个选项,返回该选项的值
Lb.get(Lb.curselection())
因为Lb.get()函数需要一个位置参数,所以我们需要通过Lb.curselection()函数获取当前位置的索引
配合Button按钮控件实现基本操作
使用Button按钮,每次选择一个选项后点击按钮,打印出当前选择的元素
import tkinter as tk
root=tk.Tk()
root.title('Listbox')
width=500
height=300
screenwidth=root.winfo_screenwidth()
screenheight=root.winfo_screenheight()
x=(screenwidth-width)//2
y=(screenheight-height)//2
root.geometry('%dx%d+%d+%d'%(width,height,x,y))
var=tk.StringVar()
L=tk.Label(root,textvariable=var,width=10,bg='white')
L.pack()
Lb=tk.Listbox(root)
Lb.place(x=180,y=50)
def get():
if Lb.curselection():
value=Lb.get(Lb.curselection())
var.set(value)
else:
pass
Lb.insert(1,'hello')
Lb.insert(2,'new')
B=tk.Button(root,text='Print',width=10,height=1,command=get)
B.place(x=215,y=250)
root.mainloop()
运行结果