python tkinter组件的Listbox的用法,见下面代码的演示:
1 from tkinter import * 2 3 root=Tk() 4 v=StringVar() 5 #Listbox与变量绑定‘ 6 lb1=Listbox(root,listvariable=v) 7 v.set((‘10‘,‘20‘,‘30‘,‘40‘,‘50‘)) 8 print(v.get()) 9 lb1.pack() 10 11 #.创建一个可以多选的Listbox,使用属性selectmaod‘ 12 lb2=Listbox(root,selectmode=MULTIPLE) 13 for item in range(10): 14 lb2.insert(END,str(item)) 15 # 有两个特殊的值ACTIVE和END,ACTIVE是向当前选中的item前插入一个 16 # (即使用当前选中的索引作为插入位置);END是向 17 # Listbox的最后一项添加插入一项 18 19 lb2.delete(1,3) 20 #删除全部内容,使用delete指定第一个索引值0和最后一个参数END,即可 21 lb2.pack() 22 23 #这个属性selectmode还可以设置为BROWSE,可以通过鼠标来移动Listbox中的选中位置 24 # (不是移动item), 25 #这个属性也是Listbox在默认设置的值,这个程序与1.程序运行的结果的一样的 26 scrollbar=Scrollbar(root) 27 scrollbar.pack(side=RIGHT,fill=Y) 28 lb3=Listbox(root,selectmode=BROWSE,yscrollcommand=scrollbar.set) 29 for item in range(20): 30 lb3.insert(END,str(item)) 31 lb3.pack(side=LEFT,fill=BOTH) 32 scrollbar.config(command=lb3.yview) 33 34 #将一个垂直方向的Scrollbar和listboxs/canvases/text fields这些控件结合起来, 35 # 你只需要按照下面的步骤即可: 36 #1.将这些控件的yscrollcommand选项设置为scrollbar的set方法。 37 #2.将scrollbar的command选项设置为这些控件的yview方法。 38 39 print(lb3.size()) 40 print(lb3.get(3)) 41 print(lb3.get(3,7)) 42 lb3.selection_set(0,10) 43 lb3.selection_clear(0,3) 44 lb3.pack() 45 46 47 def printlist(event): 48 print(lb4.get(lb4.curselection())) 49 50 51 #使用selectmode = EXPANDED使用Listbox来支持Shift和Control 52 lb4=Listbox(root,selectmode=EXTENDED) 53 lb4.bind(‘<Double-Button-1>‘,printlist) 54 for item in [‘python‘,‘tkinter‘,‘widget‘]: 55 lb4.insert(END,item) 56 lb4.pack() 57 58 59 root.mainloop()