17python

Python TK和Tkinter的GUI编程(3) 列表框 Listbox

listbox 列表框

列表框的日常使用的场景:

  • 获取列表项中的内容lb.curselection()
  • selectmode=tk.EXTENDED 这个属性设置listbox可以选择多个选项
  • 添加列表项 lb.insert(tk.END,v.get()) END代表最后一个位置,第二个参数是要添加的字符串值。
  • 删除列表中选中的项 command = lambda lb=lb:lb.delete(tk.ANCHOR)
  • lb.bind() 用来绑定列表的事件,比如删除列表中选中的项。

源码

效果展示

import tkinter as tk
root = tk.Tk()
root.title("Listbox 测试。")
# 存放list的容器
list_frame = tk.Frame(root)
list_frame.pack(fill=tk.X, side=tk.TOP)
#存放按钮文本框的容器
button_frame = tk.Frame(root)
button_frame.pack(fill=tk.X, side=tk.TOP)
# 获取当前listbox中item值,并在控制台打印值
def print_item(event):
    items = lb.curselection()
    for k in items:
        print(lb.get(k))
var = tk.StringVar()#绑定listbox的列表值
var.set(('aa','bb','cc','dd','ee'))
lb = tk.Listbox(list_frame, listvariable = var, selectmode=tk.EXTENDED)#创建一个listbox
lb.bind('',print_item)#绑定鼠标左键点击事件。
lb.pack(fill=tk.X)
# 添加listbox item的方法
def additem():
    lb.insert(tk.END,v.get())
    v.set('')
v = tk.StringVar()#绑定文本框的变量
en = tk.Entry(button_frame, textvariable = v).pack()
b1 = tk.Button(button_frame, text="添加", command=additem).pack(side=tk.LEFT)#添加一个item
b2 = tk.Button(button_frame, text="删除", command= lambda lb=lb:lb.delete(tk.ANCHOR)).pack(side=tk.LEFT)#删除一个listbox中选中的item
root.mainloop()

相关参考

本文源码下载:

相关标签
About Me
py_sky
你那么喜欢看“干货”,是因为你根本不想下什么功夫;你自以为的极限,其实只是别人的起点。
Category
标签云
站点统计

本站现有博文82篇,共被浏览57948

据官网介绍,2020年4月Python2.7将不会被维护!距离Python2.7停止维护还有547天!

热门文章
文章归档
回到顶部