python-tkinter窗口组件-Listbox

定义Listbox-然后一些增删操作

import tkinter

# 主窗口的类,使用root接收一下
root = tkinter.Tk()
# 标题
root.title("My table")
# 像素
width, height = 300, 800
# 获得屏幕的最大尺寸
width_max, height_max = root.maxsize()
# 使页面显示在屏幕正中间
s_center = '%dx%d+%d+%d' % (width, height, (width_max - width) / 2, (height_max - height) / 2)
print(s_center)
# 设置屏幕大小
root.geometry(s_center)
# 如果是true代表可以拉伸 false 不可拉伸
root.resizable(width=False, height=True)
# 列表框可以选择列表中的内容,只能是文本的内容也即是字符串内容
# 列表框常用的方法有插入方法,可以添加列表的选项
lb1 = tkinter.Listbox(root)
lb1.pack()
# 接收2个参数一个是索引的位置,一个是元素索引位置可以字符串也可以整型
lb1.insert(0, '小张')
lb1.insert(1, '小王')
lb1.insert(1, '小美')
lb1.insert('end', '小华')

# 方法一
lb = tkinter.Listbox(root)
lb.pack()
names = ['Mail', 'Tom', 'XiaoMing', 'WuMen']
# 一行for的形式
[lb.insert('end', name) for name in names]
# 两行for的形式
# for name in names:
#     lb.insert('end', name)

# 方法二
var = tkinter.StringVar()
# 插入值的方法一
var.set(['Mail', 'Tom', '123', '567', '中文'])
# 插入值的方法二 切分方式类似于split
# var.set('Mail Tom XiaoMing 中文')

# 1.决定选择的模式
# 2.四种不同的选中模式
# SINGLE(单选))、BROWSE(也是单选,但拖动鼠标或通过方向键可以直接改变选项
# MULTIPLE(多选)和 EXTENDED(也是多选,但需要同时按住Shift键或Ctrl键或拖拽鼠标实现)
# 3.默认是 BROWSE
# selectmode = tkinter.MULTIPLE listvariable(内容用变量的形式接收)
lb2 = tkinter.Listbox(root, listvariable=var, font=('黑体', 16),
                      selectmode=tkinter.MULTIPLE)


# ACTIVE 表示选中的项
def del_active():
    # 多选的时候 会以最后选的一个为删除目标
    lb2.delete(tkinter.ACTIVE)


# 删除指定位置的选择框前面代表开始位置,后面代表结束位置包含指定的索引位置
# 不仅可以删除一个 也可以删除一个区间的
# lb2.delete(1)
# 删除一个区间
# lb2.delete(1, 2)
# lb2.delete(1, 'end')

b1 = tkinter.Button(root, text='删除选中的项目', command=del_active)
b1.pack()
lb2.pack()


# 获取的方法
def get_index():
    # 返回元组的形式,没有选中返回空
    print(lb2.curselection(), type(lb2.curselection()))
    print(var.get())


b2 = tkinter.Button(root, text='打印选中的框索引号', command=get_index)
b2.pack()
# 主窗体一直循环
root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lanlnan抱抱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值