Python GUI 之 Listbox 学习
程序员文章站
2022-03-02 13:25:12
...
Python GUI 之 Combobox 学习
记录自己学习Python的点点滴滴,99%的知识是从网络上抄来的,如果冒犯那位高人,还请海涵。
1. 序言
本章介绍tkinter的Listbox控件(widget)。
2. 环境变量
os: windows10 64bit
Python: 3.7.0
3. Listbox列表控件的语法
Listbox 为列表框控件,可以包含一个或多个文本项(text item),可以设置为单选或多选。
语法为 Listbox(master, option, …)
常用的参数:
参数 | 描述 |
---|---|
master | 父窗口 |
bg | 背景色,如 bg = “Blue” |
fg | 前景色,如 fg = “Yellow” |
hieght | 设置显示高度、如果未设置此项,其大小以适应内容标签 |
width | 设置显示宽度,如果未设置此项,其大小以适应内容标签 |
relief | 指定外观装饰边界附近的标签,默认是平的,可以设置的参数:flat、groove、raised、ridge、solid、sunken |
state | 设置组件状态;正常(normal),**(active),禁用(disabled) |
bd | 设置边框bordwidth的大小,缺省为1或2个像素 |
selectmode | 选择模式:缺省(default)为浏览单选 BROWSE;多选 MULTIPLE;通过鼠标的移动选择 EXTENDED:shift和ctrl配合使用。 |
listvariable | 设置listvariable属性 |
一些常用的函数(方法):
参数 | 描述 |
---|---|
insert | 追加item,如listbox.insert(END,’a’), listbox.insert(3,’a’) |
delete | 删除item,如listbox.delete(3,4),删除全部list.delete(0,END) |
select_set | 选中,如listbox.select_set(0,2) |
select_clear | 取消选中如listbox.select_clear(0,1) |
get | 返回制定索引的项值,如listbox.get(1);返回多个项值,返回元组,如listbox.get(0,2);返回当前选中项的索引listbox.curselection() |
curselection() | 返回当前选中项的索引,如listbox.curselection() |
selection_includes | 判断当前选中的项目中是否包含某项,如listbox.selection_includes(4) |
事件:
ListboxSelect
需要注意的地方:
Listbox 没有command参数,不能用command来触发别的函数。
示列
from tkinter import *
win = Tk() #Create a tkinter instance
Label(win, text = "Below is a list box").grid(column = 0, row = 0)
list_data1 = ["a","b","c","1","2","3"]
list_value = StringVar(value = list_data1)
listbx = Listbox(win, listvariable = list_value)
listbx.grid(column = 0, row = 1)
#delete data of list box
#listbx.delete(0, END), delete all data
listbx.delete(4, END) #delete data ["2","3"]
#insert data to list box
list_data2 = ["d","e",5,6]
for value in list_data2:
listbx.insert(END, value)
#makeup list view, put a background color for rows
for i in range(listbx.size()): #listbx.size(), get the list size
if not i%2:
listbx.itemconfig(i, bg = "yellow") #change the background color
else:
listbx.itemconfig(i, fg = "blue") #change the foreground color
#command of list box selection
def showselection(*args):
print("Your selection")
print(listbx.curselection()) #print out the selected data
print("Your get")
print(listbx.get(2,4)) #get the data by index
#bind the selection envent to list box
listbx.bind("<<ListboxSelect>>", showselection)
win.mainloop()