Tkinter 列表框
列表框小部件用于显示一个用户可以选择多个项目的项目列表。
语法
下面是创建此小部件的简单语法 –
w = Listbox ( master, option, ... )
参数
- master − 这代表父窗口。
-
options − 这里是此小部件最常用选项的列表。这些选项可以用逗号分隔的键值对形式使用。
Sr.No | 选项和描述 |
---|---|
1 | Bg 标签和指示器后显示的正常背景颜色。 |
2 | Bd 指示器周围的边框大小。默认为2像素。 |
3 | Cursor 当鼠标悬停在列表框上时出现的光标。 |
4 | Font 用于列表框中文本的字体。 |
5 | Fg 用于列表框中文本的颜色。 |
6 | Height 列表框中显示的行数(而非像素!)。默认为10。 |
7 | Highlightcolor 部件获得焦点时显示的焦点高亮颜色。 |
8 | Highlightthickness 焦点高亮的厚度。 |
9 | Relief 选择三维边框阴影效果。默认为SUNKEN。 |
10 | Selectbackground 用于显示所选文本的背景颜色。 |
11 | Selectmode 确定可以选择多少项以及模式对鼠标的拖动如何影响选择 –
BROWSE − 通常,您只能在列表框中选择一行。如果单击项目,然后拖动到不同的行,则选择将跟随鼠标。这是默认值。 |
12 | Width 部件的宽度(以字符为单位)。默认为20。 |
13 | Xscrollcommand 如果您希望允许用户水平滚动列表框,则可以将列表框部件链接到水平滚动条。 |
14 | Yscrollcommand 如果您希望允许用户垂直滚动列表框,则可以将列表框部件链接到垂直滚动条。 |
方法
listbox对象的方法包括 –
序号 | 选项和描述 |
---|---|
1 | activate ( index ) 选择由给定索引指定的行。 |
2 | curselection() 返回一个包含所选元素的行号的元组,从0开始计数。如果没有选择任何内容,返回一个空元组。 |
3 | delete ( first, last=None ) 删除索引范围[first, last] 内的行。如果省略第二个参数,将删除索引为first的单行。 |
4 | get ( first, last=None ) 返回一个包含从第一个到最后一个索引的行的文本的元组。如果省略第二个参数,返回与第一个最接近的行的文本。 |
5 | index ( i ) 如果可能,将可见部分的列表框定位到包含索引i的行位于窗口顶部。 |
6 | insert ( index, *elements ) 在索引指定的行之前,插入一个或多个新行到列表框中。如果希望将新行添加到列表框的末尾,请使用END作为第一个参数。 |
7 | nearest ( y ) 返回离列表框窗口相对于y坐标最近的可见行的索引。 |
8 | see ( index ) 调整列表框的位置,使索引所指的行可见。 |
9 | size() 返回列表框中行的数量。 |
10 | xview() 要使列表框在水平方向上可以滚动,将关联的水平滚动条的command选项设置为该方法。 |
11 | xview_moveto ( fraction ) 将列表框滚动到其最长行宽的左侧比例为fraction的位置。fraction的范围在[0,1]之间。 |
12 | xview_scroll ( number, what ) 水平滚动列表框。对于what参数,使用UNITS以字符为单位进行滚动,或者使用PAGES以列表框的宽度为单位进行滚动。number参数告诉要滚动多少距离。 |
13 | yview() 要使列表框在垂直方向上可以滚动,将关联的垂直滚动条的command选项设置为该方法。 |
14 | yview_moveto ( fraction ) 将列表框滚动到其最长行宽的左侧之外的宽度的前fraction部分。fraction的取值范围为[0,1]。 |
15 | yview_scroll ( number, what ) 垂直滚动列表框。对于what参数,使用UNITS来按行滚动,使用PAGES来按页滚动,即按照列表框的高度。number参数指定要滚动的数量。 |
示例
自己尝试以下示例-
from tkinter import *
top = Tk()
Lb1 = Listbox(top)
Lb1.insert(1, "Python")
Lb1.insert(2, "Perl")
Lb1.insert(3, "C")
Lb1.insert(4, "PHP")
Lb1.insert(5, "JSP")
Lb1.insert(6, "Ruby")
Lb1.pack()
top.mainloop()
当上述代码被执行时,会产生以下结果−