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()

        第二种方式,是利用listbox提供的item增删插入等函数进行变更,包含:insert、delete。从目前我个人的使用方式来看,似乎没有用到这些函数的必要性,所以暂时就不做介绍了。如果后续有,则再介绍。

你可能感兴趣的:(GUI,python,TK)