Tkinter 列表框



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

语法

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

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

参数

  • master − 表示父窗口。

  • options − 以下是此小部件最常用的选项列表。这些选项可以用逗号分隔的键值对使用。

序号 选项和描述
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

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

方法

列表框对象的方法包括:

序号 选项和描述
1

activate ( index )

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

2

curselection()

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

3

delete ( first, last=None )

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

4

get ( first, last=None )

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

5

index ( i )

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

6

insert ( index, *elements )

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

7

nearest ( y )

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

8

see ( index )

调整列表框的位置,以便显示索引所引用的行。

9

size()

返回列表框中的行数。

10

xview()

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

11

xview_moveto ( fraction )

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

12

xview_scroll ( number, what )

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

13

yview()

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

14

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

执行上述代码后,将产生以下结果:

tkinter listbox
python_gui_programming.htm
广告
© . All rights reserved.