欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python基础知识-GUI编程-TK-Listbox

程序员文章站 2022-04-11 17:28:14
...

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