|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lzb1001 于 2022-5-17 00:08 编辑
WIN10/PYTHON3.7.6
----------------------------
# 此例演示Listbox组件
from tkinter import *
root = Tk()
theLB = Listbox(root)
theLB.pack()
for item in ['鸡蛋', '鸭蛋', '鹅蛋', '李狗蛋']:
theLB.insert(END, item)
Button(root, text='删除它', width=10, font=('华康少女文字 - Kelvin', 10), fg='white', bg='red', command=lambda x=theLB:x.delete(ACTIVE)).pack
root.title('Listbox组件教学示例')
mainloop()
------------------------------
【我的问题】
1、上面代码中红色部分,不太理解为何要用到lambda表达式?
2、如果直接用command=theLB.delete(ACTIVE),我试着替换过发现好像不行,无法删除指定选项,而且4个选项变成3个选项
请大神帮忙解疑释惑系下。
嗯,我忘记从哪开始删了,但是原理是一致,从上删一个也是因为你直接赋值 theLB.delete(ACTIVE) 导致的
多选删除实现:
- from tkinter import *
- root = Tk()
- theLB = Listbox(root,selectmode=EXTENDED)
- theLB.pack()
- for item in ['鸡蛋', '鸭蛋', '鹅蛋', '李狗蛋']:
- theLB.insert(END, item)
- def test():
- for i in theLB.curselection()[::-1]:
- theLB.delete(i)
- Button(root, text='删除它', width=10, font=('华康少女文字 - Kelvin', 10), fg='white', bg='red', command=test).pack()
- root.title('Listbox组件教学示例')
- mainloop()
复制代码
|
|