当前位置: 首页 > 文档资料 > Python 中文教程 >

Listbox

优质
小牛编辑
117浏览
2023-12-01

列表框小部件用于显示用户可以从中选择多个项目的项目列表。

语法 (Syntax)

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

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

参数 (Parameters)

  • 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 - 通常,您只能从列表框中选择一行。 如果单击某个项目然后拖动到其他行,则选择将跟随鼠标。 这是默认值。
  • SINGLE - 您只能选择一行,并且无法拖动鼠标。无论您单击按钮1,该行都会被选中。
  • MULTIPLE - 您可以一次选择任意数量的行。 单击任何一行都会切换是否选中它。
  • EXTENDED - 您可以通过单击第一行并拖动到最后一行来一次选择任何相邻的行组。
12

width

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

13

xscrollcommand

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

14

yscrollcommand

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

方法 (Methods)

列表框对象上的方法包括 -

Sr.No.选项和说明
1

activate ( index )

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

2

curselection()

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

3

delete ( first, last=None )

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

4

get ( first, last=None )

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

5

index ( i )

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

6

insert ( index, *elements )

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

7

nearest ( y )

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

8

see ( index )

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

9

size()

返回列表框中的行数。

10

xview()

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

11

xview_moveto ( fraction )

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

12

xview_scroll ( number, what )

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

13

yview()

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

14

yview_moveto ( fraction )

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

15

yview_scroll ( number, what )

垂直滚动列表框。 对于what参数,使用UNITS按行滚动,或使用PAGES按页面滚动,即按列表框的高度滚动。 number参数告诉滚动的数量。

例子 (Example)

请亲自尝试以下示例 -

from Tkinter import *
import tkMessageBox
import Tkinter
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()

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

TK Listbox