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

tkinter应知应会(六):listbox控件,展示列表内容

程序员文章站 2022-03-06 19:04:46
...

正如list(列表)之余Python,是非常重要的功能,因此有很多方法,listbox控件对于tkinter来说,也是一个大控件,有非常多的方法和功能。这里挑几个重要的讲。(其他的也不是不重要,遇到了再补充)

1,生成一个listbox

import tkinter as tk
# 创建一个列表,备用
alist = ['python','tkinter','java','c++']

root = tk.Tk()
listbox = tk.Listbox(root)
# listbox创建的时候,是空的,需要逐行插入数据
for item in alist:
    # 'end'的意思是从最后插入(也有其他插入方式)
    listbox.insert('end',item) 
listbox.pack()

root.mainloop()

2,listbox的选择模式
single 单选
browse 单选,拖动鼠标或通过方向键可以直接改变选项
multiple 多选
extended 多选,需要同时按住Shift键或Ctrl键或拖拽鼠标实现

listbox里被选中的选项,状态是’active’。

# 在listbox里使用属性selectmode
import tkinter as tk
alist = ['python','tkinter','java','c++']

root = tk.Tk()
listbox = tk.Listbox(root,selectmode='multiple')
for item in alist:
    listbox.insert('end',item)
listbox.pack()
root.mainloop() 

3,listbox的插入、删除,以及获取listbox的全部内容

# 删除所选项,并保存最终结果
import tkinter as tk
alist = ['滚', '滚', '长', '江', '东', '逝', '水']

def delword():
    listbox.delete('active') # 删除所选项
    
def save():
    result = listbox.get(0,'end') # 保存所选项为元组
    print(result)
    root.destroy()

root = tk.Tk()
listbox = tk.Listbox(root)
for item in alist:
    listbox.insert('end', item)
listbox.pack()
    
buttonDel = tk.Button(root,text='删除选中项',command=delword)
buttonDel.pack()

buttonSave = tk.Button(root,text='保存并关闭',command=save)
buttonSave.pack()

root.mainloop()