Python基础知识-GUI编程-TK-Listbox
1、Item选项
Item的选项是通过listvariable属性进行设置,将一个tuples变量赋值给listvariable即可。见下面的代码:
tnames = [‘python’,‘TCL’,‘ruby’]
cnames = StringVar()
cnames.set(tuple(tnames))
Listbox(root, listvariable = cnames, width = 100).grid()
列出的选项是python,TCL,ruby
2、Item选项的选择模式
Item选项可以有两种选择模式,一种是单选,一种是多选;默认是单选。
设置的属性是 selectmode, 值 browse 是单选, 值 extended 是多选。例如:
Listbox(root, listvariable = cnames, width = 100, selectmode = “extended”).grid()
3、获取当前的选择项
可以通过curselection函数获取当前的item index,然后通过get函数获取对应的选项名称。代码如下:
def changeItems():
indexs = l.curselection()
for i in range(len(indexs)):
print l.get(indexs[i])
root = Tkinter.Tk()
root.geometry(’+400+200’)
root.minsize(400,200)
root.title(“test”)
tnames = [‘python’,‘TCL’,‘ruby’]
cnames = StringVar()
cnames.set(tuple(tnames))
l = Listbox(root, listvariable = cnames, width = 100, selectmode = “extended”)
l.grid()
ttk.Button(root,text = “submit”,command = changeItems).grid()
root.mainloop()
4、可选择的Item的变化
第一种方式,是整体的方式,就是变更listvariable对应的变量list。这个的好处是,可以完全使用list熟悉的处理方式来处理listbox的items。具体代码如下,点击submit按钮之后,可选的item增加了一个'java':
def changeItems():
tnames.append(‘java’)
cnames.set(tuple(tnames))
root = Tkinter.Tk()
root.geometry(’+400+200’)
root.minsize(400,200)
root.title(“test”)
tnames = [‘python’,‘TCL’,‘ruby’]
cnames = StringVar()
cnames.set(tuple(tnames))
Listbox(root, listvariable = cnames,height = 10).grid()
ttk.Button(root,text = “submit”,command = changeItems).grid()
root.mainloop()