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

Python Tkinter详解 (五)List列表的使用

程序员文章站 2022-04-12 10:41:24
...
#还是原来的配方,原来的味道,创建个List列表先

from tkinter import *
#相较于之前的写法,太过于麻烦,但是为了理解,从现在开始我们用更简略的写法

window = Tk()		#这里跟之前也有区别哦

list = Listbox(window,width=20,height=10)	#还有这里
list.pack()

for item in ['1','2','3']:
    list.insert(0,item)		#我们用insert方法将元素添加到列表中去
    #注意这里的0指的是从哪个位置开始插入,后面一个就是要添加的内容,我们用for循环遍历添加进去
    #如果需要添加到末尾,将0改为“end”即可

list.insert(0,'1','2','3')	#我们也可以直接添加

window.mainloop()
#元素的删除
#我们上边讲了列表的创建和元素的添加,那么元素怎么样可以删除呢?

from tkinter import *

window = Tk()

list = Listbox(window,width=20,height=10,selectmode = MULTIPLE)
list.pack()

for item in ['1','2','3']:
    list.insert(0,item)

list.delete(1)		#我们使用delete()方法删除元素,1就是删除索引为1的元素(即第二个元素)
#如果我们需要删除‘1’,‘2’,‘3’三个元素的话,我们只需要改成list.delete(0,2)

window.mainloop()
#一次选择多个元素
#现在我们元素已经添加到列表中了,我们发现一次只能选择一个元素,我们可不可一次选择多个元素呢?
from tkinter import *

window = Tk()

list = Listbox(window,width=20,height=10,selectmode = MULTIPLE)	
#selectmode属性就是设置元素多选的,当设置成MULTIPLE时,列表可以多选一次只能多选一项
#当设置成EXPANDED时,列表就支持Shift和Ctrl键啦,具体功能自己体会
list.pack()

for item in ['1','2','3']:
    list.insert(0,item)

window.mainloop()
#一次性删除选中的选项
#现在我们已经知道怎么多选,怎么删除元素,那么我们怎么一次性将选中的选项都删除呢?

from tkinter import *

window = Tk()

list = Listbox(window,width=20,height=10,selectmode = EXTENDED)
list.pack()

list.insert(0,'1','2','3','4','5')

def deletelist():
    a = list.size()			#我们用size()方法可以知道当前列表中有多少元素啦
    for i in range(a):
        if(list.select_includes(a-1-i)) == True:		#用select_includes()可以知道该选项是否被选中
            list.delete(a-1-i)		
            #我们为什么要倒着检查呢?因为如果顺着检查,当删除后索引就会发生变化,就会出现问题啦

Button(window,text='单击',command=deletelist).pack()

window.mainloop()
#获取列表中元素的值

from tkinter import *

window = Tk()

list = Listbox(window,width=20,height=10,selectmode = EXTENDED)
list.pack()

list.insert(0,'1','2','3','4','5')

print(list.get(1))		#用get()方法可以很方便的获取元素的值

window.mainloop()
from tkinter import *

window = Tk()

value = StringVar()
list = Listbox(window,width=20,height=10,selectmode = EXTENDED,listvariable=value)
list.pack()

list.insert(0,'1','2','3','4','5')

print(value.get())

window.mainloop()
相关标签: tkinter