Python Tkinter Listbox



Python Tkinter Listbox 小部件用于显示项目列表,用户可以从中选择多个项目。

语法

以下是创建此小部件的简单语法 -


 w = Listbox ( master, option, ... )

参数

  • master - 这表示父窗口。
  • options − 这是此小部件最常用的选项列表。这些 options 可以用作用逗号分隔的键值对。
选项 描述
Bg

显示在标签和指示器后面的正常背景色。

Bd

指标周围边界的大小。默认值为 2 像素。

Cursor

当鼠标悬停在列表框上时出现的光标。

Font

用于列表框中文本的字体。

Fg

用于列表框中文本的颜色。

Height

列表框中显示的行数 (不是像素!默认值为 10。)

Highlightcolor

当 Widget 具有焦点时,焦点中显示的颜色会突出显示。

Highlightthickness

焦点高光的粗细。

Relief

选择三维边界阴影效果。默认值为 SUNKEN。

Selectbackground

用于显示所选文本的背景色。

Selectmode

确定可以选择的项目数以及鼠标的选择方式 拖动会影响选择 -

  • BROWSE − 通常,您只能从列表框中选择一行。如果单击某个项目,然后拖动到其他行,则选择将跟随鼠标。这是默认设置。
  • SINGLE − 您只能选择一行,并且不能拖动鼠标。无论您单击按钮 1 在哪里,该行都会被选中。
  • MULTIPLE − 您可以一次选择任意数量的行。单击任何行可切换是否选中该行。
  • EXTENDED − 您可以通过单击第一行并拖动到最后一行来一次选择任何相邻的行组。
Width

小组件的宽度(以字符为单位)。默认值为 20。

Xscrollcommand

如果要允许用户水平滚动列表框,可以将列表框小组件链接到水平滚动条。

Yscrollcommand

如果要允许用户垂直滚动列表框,可以将列表框小组件链接到垂直滚动条。

方法

listbox 对象上的方法包括 -

选项 描述
activate ( index )

选择由给定索引指定的行。

curselection()

返回一个元组,其中包含所选元素或元素的行号,从 0 开始计数。如果未选择任何内容,则返回一个空 Tuples。

delete ( first, last=None )

删除索引在 [first, last] 范围内的行。如果省略第二个参数,则删除索引为 first 的单行。

get ( first, last=None )

返回一个元组,其中包含索引从第一个到最后一个(含)的行的文本。如果省略第二个参数,则返回最接近第一个参数的行的文本。

index ( i )

如果可能,请定位列表框的可见部分,以便包含索引 i 的行位于窗口小部件的顶部。

insert ( index, *elements )

在列表框中 index 指定的行之前插入一个或多个新行。如果要在列表框的末尾添加新行,请使用 END 作为第一个参数。

nearest ( y )

返回相对于列表框小部件最接近 ycoordinate y 的可见线的索引。

see ( index )

调整列表框的位置,以便 index 引用的行可见。

size()

返回列表框中的行数。

xview()

要使列表框可水平滚动,请将关联水平滚动条的 command 选项设置为此方法。

xview_moveto ( fraction )

滚动列表框,使其最长行宽度的最左侧部分位于列表框的左侧之外。分数在 [0,1] 范围内。

xview_scroll ( number, what )

水平滚动列表框。对于 what 参数,请使用 UNITS 按字符滚动,或使用 PAGES 按页滚动,即按列表框的宽度滚动。number 参数指示要滚动的数量。

yview()

要使列表框可垂直滚动,请将关联的垂直滚动条的 command 选项设置为此方法。

yview_moveto ( fraction )

滚动列表框,使其最长行宽度的顶部部分位于列表框的左侧之外。分数在 [0,1] 范围内。

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()

执行上述代码时,它会产生以下结果 -

tkinter 列表框